gpt4 book ai didi

c# - 使用 POST 方法的 MVC 4 发布不起作用(使用 GET 方法 - 有效)

转载 作者:太空宇宙 更新时间:2023-11-04 15:29:12 24 4
gpt4 key购买 nike

这是我的模型:

public class LoginModel {
public string username { get; set; }
public string password { get; set; }
public string ReturnUrl { get; set; }
}

这是我的 Controller 标题:

    [AllowAnonymous]
public ActionResult Login(
LoginModel model
)

这是我的观点:

 <form action="@Url.Action("Login", "Login")" method="GET">
@Html.HiddenFor(m=>m.ReturnUrl)
User name: @Html.TextBoxFor(f=>f.username)
<br />
Password: @Html.PasswordFor(f=>f.password)
<br /><br />
<button type="submit">Login</button>
</form>

当我将表单上的方法从“GET”更改为“POST”时,绑定(bind)不起作用。我尝试添加:

[AcceptVerbs("POST", "GET")]

到 Controller 头,它没有帮助

最佳答案

小心,ActionResult Login 不是您的 Controller ...它是您的操作,将其添加到操作的标题中:

[HttpPost] 
public ActionResult Login(LoginModel model)
{
// your code
return View("NameofView"); //**UPDATE
}

和你的表格:

method="POST"

更新*

请注意,您可以在 return 子句中显式设置 View 的名称。如果您的 POST 正在调用您的登录操作,那是因为您将它显式地放在表单定义内的 action 属性中。

<form action="<Here_your_action>" method="POST">

如果您想为 GET 和 POST 执行这两种“操作”,则必须编写两种形式以匹配此定义。

关于c# - 使用 POST 方法的 MVC 4 发布不起作用(使用 GET 方法 - 有效),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16278887/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com