0

当我单击链接“Foo”时,我在 LogOn 操作中遇到了断点,但用户名始终为空。我不明白为什么。

<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 回答