de-vraag
  • Pertanyaan
  • Tag
  • Pengguna
Notifikasi
Imbalan
Registrasi
Setelah Anda mendaftar, Anda akan diberitahu tentang balasan dan komentar untuk pertanyaan Anda.
Gabung
Jika Anda sudah memiliki akun, masuk untuk memeriksa pemberitahuan baru.
Akan ada hadiah untuk pertanyaan, jawaban, dan komentar tambahan.
Lebih
Sumber
Sunting
 ediblecode
ediblecode
Question

MVC ajax memposting ke metode aksi pengontrol

Saya telah melihat pertanyaannya di sini: https://stackoverflow.com/questions/4120212/mvc-ajax-json-post-to-controller-action-method tapi sayangnya sepertinya tidak membantu saya. Milik saya hampir sama persis, kecuali tanda tangan metode saya (tapi saya sudah mencobanya dan tetap tidak kena).

jQuery

$('#loginBtn').click(function(e) {
    e.preventDefault();

    // TODO: Validate input

    var data = {
        username: $('#username').val().trim(),
        password: $('#password').val()
    };

    $.ajax({
        type: "POST",
        url: "http://localhost:50061/checkin/app/login",
        content: "application/json; charset=utf-8",
        dataType: "json",
        data: JSON.stringify(data),
        success: function(d) {
            if (d.success == true)
                window.location = "index.html";
            else {}
        },
        error: function (xhr, textStatus, errorThrown) {
            // TODO: Show error
        }
    });
});

Controller

[HttpPost]
[AllowAnonymous]
public JsonResult Login(string username, string password)
{
    string error = "";
    if (!WebSecurity.IsAccountLockedOut(username, 3, 60 * 60))
    {
        if (WebSecurity.Login(username, password))
            return Json("'Success':'true'");
        error = "The user name or password provided is incorrect.";
    }
    else
        error = "Too many failed login attempts. Please try again later.";

    return Json(String.Format("'Success':'false','Error':'{0}'", error));
}

Namun, tidak peduli apa yang saya coba, Controller saya tidak pernah terkena. Melalui debugging, saya tahu bahwa ia mengirimkan permintaan, hanya saja ia mendapat kesalahan Tidak Ditemukan setiap kali.

14 2013-10-29T16:19:00+00:00 3
 Community
Community
Pertanyaan edit 23 Mei 2017 в 12:16
Pemrograman
asp.net-mvc
c#
jquery
ajax
Pertanyaan ini memiliki :value jawaban dalam bahasa Inggris, untuk membacanya masuk ke akun Anda.
Solution / Answer
David L
David L
29 Oktober 2013 в 4:27
2013-10-29T16:27:12+00:00
Lebih
Sumber
Sunting
#22656703

Action Anda mengharapkan parameter string, tetapi Anda mengirim objek komposit.

Anda perlu membuat objek yang cocok dengan apa yang Anda kirimkan.

public class Data
{
    public string username { get;set; }
    public string password { get;set; }
}

public JsonResult Login(Data data)
{
}

EDIT

Selain itu, toStringify() mungkin bukan yang Anda inginkan di sini. Kirim saja objek itu sendiri.

data: data,
David L
David L
Jawaban edit 29 Oktober 2013 в 4:52
16
0
Chris Dixon
Chris Dixon
29 Oktober 2013 в 4:25
2013-10-29T16:25:45+00:00
Lebih
Sumber
Sunting
#22656702

Ini karena Anda mengirim satu objek, dan Anda mengharapkan dua parameter.

Coba ini dan Anda akan tahu:

public class UserDetails
{
   public string username { get; set; }
   public string password { get; set; }
}

public JsonResult Login(UserDetails data)
{
   string error = "";
   //the rest of your code
}
Chris Dixon
Chris Dixon
Jawaban edit 29 Oktober 2013 в 4:31
4
0
 jason
jason
9 Desember 2014 в 6:09
2014-12-09T06:09:28+00:00
Lebih
Sumber
Sunting
#22656704
$('#loginBtn').click(function(e) {
    e.preventDefault(); /// it should not have this code or else it wont continue
    //....
});
-4
0
Related communities 1
jQuery Indonesia
jQuery Indonesia
343 pengguna
Learning jQuery & Solve Problem
Buka telegram
Tambahkan pertanyaan
Kategori
Semua
Teknologi
Budaya / Rekreasi
Kehidupan / Seni
Ilmu Pengetahuan
Profesional
Bisnis
Pengguna
Semua
Baru
Populer
1
Asilbek Qadamboyev
Terdaftar 1 hari yang lalu
2
Akshit Mehta
Terdaftar 4 hari yang lalu
3
me you
Terdaftar 1 minggu yang lalu
4
Никита иванов
Terdaftar 1 minggu yang lalu
5
Alex1976G_06
Terdaftar 1 minggu yang lalu
ID
JA
© de-vraag 2022
Sumber
stackoverflow.com
di bawah lisensi cc by-sa 3.0 dengan atribusi