1

Asp.netでMVC3を使用していますが、HTTPPOST日付をコントロールに送信する必要があります。コントロールは、応答としてJSONを送り返す必要があります。現在、このコードを使用していますが、のフォームフィールドを取得できませんcollection

何が悪いのか分かりますか?

         [HttpPost]
            public JsonResult LogOn(FormCollection collection, string returnUrl)
            {
    ...
return this.Json(new { success = "true", msg = messages[0] });
    }

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
</head>
<body>
    <h1>
        Test LogOn</h1>
    <form action="/Controller/LogOn" method="post">
    UserName:
    <input type="text" name="UserName"><br>
    Password:
    <input type="text" name="Password"><br>
    RememberMe:
    <input type="hidden" name="RememberMe" value="true">
    <input type="submit" value="Submit">
    </form>
</body>
</html>
4

2 に答える 2

1

はい、可能です。に問題があった場合、メソッドHttpPostAttributeの内部に入ることができなかったでしょうLogOn。フィールドがクライアントから送信され、それらのフィールドがクエリ文字列ではなくリクエスト本文内に配置されていることを再確認する必要があります。たとえば、ネットワークトラフィックを検査したり、HttpContext.Current.Request.Formプロパティをデバッグしたりすることで、Chromeで確認できます。

于 2012-10-12T07:31:24.540 に答える
0

はい、できます。JsonResultはActionResultであり、POSTまたはGETリクエストとは何の関係もありません。
入力をでラップしたことを確認してください

@using(Html.BeginForm())

or 
<form action="" method="">
</form>

自分のフィールドにどのようにアクセスしているかわからない..やっていFormCollection["form"]ますか?等である必要がありformCollection["Password"]ます formCollection["UserName"]

于 2012-10-12T07:35:39.760 に答える