这是我的Controller类中的一行代码:
return JavaScript(String.Format("window.top.location.href='{0}';", Url.Action("MyAction", "MyController")))
Run Code Online (Sandbox Code Playgroud)
有没有办法让它使用的verb=post版本MyAction?
Oun*_*ess 19
我自己遇到了同样的问题,并使用data-属性和一些jQuery 解决了它.这样做的好处是,当您将鼠标悬停在链接上时,即使它执行POST,您仍然可以获得正确的URL.请注意,Html.BeginForm如果用户点击回车键,则包含默认操作.
HTML(ASP.NET MVC3 Razor)
@using (Html.BeginForm("Quick", "Search"))
{
<input type="text" name="SearchText" />
<a href="@Url.Action("Quick", "Search")" data-form-method="post">Search</a>
<a href="@Url.Action("Advanced", "Search")" data-form-method="post">Advanced</a>
}
Run Code Online (Sandbox Code Playgroud)
jQuery的
$("a[data-form-method='post']").click(function (event) {
event.preventDefault();
var element = $(this);
var action = element.attr("href");
element.closest("form").each(function () {
var form = $(this);
form.attr("action", action);
form.submit();
});
});
Run Code Online (Sandbox Code Playgroud)
Mat*_*cey 16
您只需导航到其他网址即可使用POST.(这是您通过更改location.href所做的.)
使用POST仅在提交一些数据时才有意义.从您的代码中不清楚实际发布的数据是什么.
如果您真的想通过javascript发起POST,请尝试使用它来提交表单.