Asp.net mvc 使用带有verificationtoken的ajax post请求调用void ActionMethod会覆盖页面,将其变为空白。怎么会?
我试图调用一个动作方法而不影响视图。我调用下面的操作方法Asp.net mvc 使用带有verificationtoken的ajax post请求调用void ActionMethod会覆盖页面,将其变为空白。怎么会?,asp.net-mvc,asp.net-ajax,actionmethod,Asp.net Mvc,Asp.net Ajax,Actionmethod,我试图调用一个动作方法而不影响视图。我调用下面的操作方法 [HttpPost] [AllowAnonymous] [ValidateAntiForgeryToken] public void Index(LoginModel login)//, string returnUrl) { if (ModelState.IsValid && System.Web.Security.Membership.ValidateUser(login.UserName, log
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public void Index(LoginModel login)//, string returnUrl)
{
if (ModelState.IsValid &&
System.Web.Security.Membership.ValidateUser(login.UserName, login.Password))
{
FormsAuthentication.SetAuthCookie(login.UserName, login.RememberMe);
login.JavascriptToRun = "updateForm()";
}
// handle error
}
通过这样做
$('#loginBtn').click(function () {
var success = false;
var form = $('#loginForm');
var token = $('input[name="__RequestVerificationToken"]', form).val();
$.ajax({
url: $(this).data('url'),
type: 'POST',
data: {
__RequestVerificationToken: token,
LoginModel: "@Model"
},
success: function (result) {
alert("logged in");
}
});
});
表单位于一个单独的视图中,该视图还包含上述JS代码片段
除了重新加载整个页面外,一切正常,因为actionmethod是void,所以结果是空的。我不想任何事情发生在网页上,只想更改存储在模型中的js代码片段,顺便说一句,到目前为止该模型是一个空函数
我看过一些相关的帖子,比如,但是我一点也不知道
感觉就像我撞到了墙,其他人的意见将不胜感激。干杯 您可以使用ActionResult作为Index()操作的数据类型,并使用View()将javascript返回到其中。(返回JavaScriptResult()) 看看这个:
您能显示视图吗?