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())

看看这个:

您能显示视图吗?