Asp.net mvc 模型后不改为什么

Asp.net mvc 模型后不改为什么,asp.net-mvc,razor,razor-2,Asp.net Mvc,Razor,Razor 2,我有插入用户和这两个页面的工作很好,但在我插入新的信息后,我发送新的模型,但这不工作。我以前插入的信息仍然在文本框中,没有任何错误。为什么 返回新用户 尝试重定向回GET RegisterUser 原因是:当您向MVC提交表单时,ModelState中的所有值(基本上是请求值)优先于传递给视图的任何模型。重定向将为您提供一个空的ViewDataDictionary,因此所有值都将从传递给新用户的模型中提取 if (Result.Mode == Common.Extensions.ActionRe

我有插入用户和这两个页面的工作很好,但在我插入新的信息后,我发送新的模型,但这不工作。我以前插入的信息仍然在文本框中,没有任何错误。为什么

返回新用户


尝试重定向回GET RegisterUser

原因是:当您向MVC提交表单时,ModelState中的所有值(基本上是请求值)优先于传递给视图的任何模型。重定向将为您提供一个空的ViewDataDictionary,因此所有值都将从传递给新用户的模型中提取

if (Result.Mode == Common.Extensions.ActionResultMode.Successfully)
{
    return RedirectToAction("RegisterUser");
}

尝试重定向回GET RegisterUser

原因是:当您向MVC提交表单时,ModelState中的所有值(基本上是请求值)优先于传递给视图的任何模型。重定向将为您提供一个空的ViewDataDictionary,因此所有值都将从传递给新用户的模型中提取

if (Result.Mode == Common.Extensions.ActionResultMode.Successfully)
{
    return RedirectToAction("RegisterUser");
}

maf748是正确的,您应该发布重定向获取。您可以使用TempData与GET action方法通信,告知应显示消息,例如:

TempData.Message = "User registered.";
return RedirectToAction( "RegisterUser" );
然后在RegisterUser视图中,您可以检查TempData.Message是否有值


但是,如果您仍然希望按自己的方式执行,可以在返回新视图之前尝试ModelState.Clear。这将导致的问题是,如果用户在其浏览器中刷新页面,它会将其发送回您的Post方法,并在浏览器中提示他们您是否要重新提交数据消息,并可能在数据库中创建重复注册。

maf748正确,您应该Post Redirect Get。您可以使用TempData与GET action方法通信,告知应显示消息,例如:

TempData.Message = "User registered.";
return RedirectToAction( "RegisterUser" );
然后在RegisterUser视图中,您可以检查TempData.Message是否有值


但是,如果您仍然希望按自己的方式执行,可以在返回新视图之前尝试ModelState.Clear。这将导致的问题是,如果用户在其浏览器中刷新页面,则会将其发送回您的Post方法,并在浏览器中提示他们您是否要重新提交数据消息并可能在数据库中创建重复注册。

我鼓励您坚持使用此方法,由于Craig概述的原因,我发现iti还存在另一个问题:如果用户打开多个选项卡,消息将在不同页面中显示给用户。我如何解决这个问题?我鼓励你坚持使用这种方法,因为Craig概述了我发现iti存在另一个问题的原因:如果用户打开多个选项卡,消息将在不同的页面中显示给用户。我如何解决这个问题?我还有一个问题:如果用户打开多个标签,消息将在不同的页面中显示给用户。我如何解决这个问题?我还有一个问题:如果用户打开多个标签,消息将在不同的页面中显示给用户。我如何解决这个问题?