0

リンク「Foo」をクリックすると、LogOn アクションのブレークポイントにヒットしますが、ユーザー名は常に null です。理由がわかりません。

<a class="jqselect" id="myId" href="#">Foo</a>    
@using (Html.BeginForm("LogOn", "Account", FormMethod.Post, new { id = "fooForm" }))
{
    <input type="text" id="username"/>
}

<script type="text/javascript">
    $(document).ready(function () {
        $(".jqselect").click(function () {

            $.ajax({
                url: '/Account/LogOn',
                type: "Post",
                data: $('#fooForm').serialize(),
                success: function (result) {
                    if (result.success) {
                    }
                }
            });

        });
    });
</script>

[HttpPost]
public ActionResult LogOn(string username)
{
    Console.WriteLine(username);
    return new EmptyResult();
}
4

1 に答える 1

3

名前を付ける必要があります。

<input type="text" id="username" name="username"/>

実際に をドロップしidて名前を指定するだけで、コントローラー メソッドがそれを認識します。

必要に応じてモデルを使用することもでき、次のようにコーディングできます。

@Html.TextboxFor(m=>m.Username)

モデルは次のように定義されます。

public class LogOnModel {
    public string Username {get;set;}
}

そしてあなたのメソッドは次のように定義されています:

[HttpPost]
public ActionResult LogOn(LogOnModel input)
{
}
于 2013-03-29T08:07:34.607 に答える