C# 控制器中的HttpPost操作结果

C# 控制器中的HttpPost操作结果,c#,jquery,asp.net-mvc,C#,Jquery,Asp.net Mvc,我正在使用模态对话中的部分页面来处理网站上其他地方的各种CRUD操作,它工作得很好,我在登录时也做了同样的事情(如下所示),但是控制器中的HttpPostactionresult没有被击中,我不确定为什么 而是调用HttpGet 我错过了什么 部分登录 @model Models.User <script language="Javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js">

我正在使用模态对话中的部分页面来处理网站上其他地方的各种CRUD操作,它工作得很好,我在登录时也做了同样的事情(如下所示),但是控制器中的
HttpPost
actionresult没有被击中,我不确定为什么

而是调用
HttpGet

我错过了什么

部分登录

@model Models.User
<script language="Javascript" type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script language="Javascript" type="text/javascript" src="http://code.jquery.com/ui/1.10.3/jquery-ui.js"></script>
<script type="text/javascript">
    $(function () {
        $('#btn-login').click(function () {
            $('#modal-container').modal('hide');
        });
        $('#btn-close').click(function () {
            $('#modal-container').modal('hide');
        });
    });
</script>

<div class="login-container">
    @using (Html.BeginForm())
    {        
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
        <div class="login-table">
            <div>
                @Html.LabelFor(m => m.Username)
                @Html.TextBoxFor(m => m.Username)
                @Html.ValidationMessageFor(m => m.Username, "", new { @class = "text-danger" })
            </div>
            <div>
                @Html.LabelFor(m => m.Password)
                @Html.PasswordFor(m => m.Password)
                @Html.ValidationMessageFor(m => m.Password, "", new { @class = "text-danger" })
            </div>
        </div>
        <div>
            <button type="submit" id="btn-login" class="btn btn-sm">Login</button>
            <button type="button" class="btn btn-default modal-close-btn" data-dissmiss="modal">Cancel</button>
        </div>
    }
</div>

在表单属性中尝试此操作

@Html.BeginForm("Login", "Home", , new { modal= Model }, FormMethod.Post)

//Login- action Name that has to be hit

//Home     - Controller name

GET方法标记为
[AllowAnonymous]
,表明控制器标记为
[Authorize]
,这意味着POST方法也必须标记为
[AllowAnonymous]
(在执行此方法中的代码之前,用户已被授权)


[AllowAnonymous]
在POST方法上?添加登录([FromBody]用户模型)@StephenMuecke谢谢!奇怪的是,在另一个登录应用程序上不需要这两个选项,但这就解决了问题,谢谢!默认操作是发布,因此这是错误的,没有帮助。
@Html.BeginForm("Login", "Home", , new { modal= Model }, FormMethod.Post)

//Login- action Name that has to be hit

//Home     - Controller name
[HttpPost]
[AllowAnonymous]
public ActionResult Login(User model)
{
    if(ModelState.IsValid)
    {
        // do stuff
    }
    return RedirectToAction("Index", "Announcements");
}