将ModelState传递给RedirectToAction

时间:2014-03-04 10:05:29

标签: asp.net-mvc azure modelstate asp.net-mvc-validation

有没有办法将ModelState传递给RedirectToAction 而不使用TempData

已更新

我有以下行动:

public ActionResult Index()
{
    var model = SettingsService.GetSettings();
    return View(model);
}

[HttpPost]
public ActionResult Update(Settings model)
{
     if (ModelState.IsValid)
     {
         SettingsService.UpdateSettings(model);
     }

     return RedirectToAction("Index");
}

该模型存在服务器验证错误。我想在重定向到Index之后显示错误。

应用程序在云端,它至少有两个WebRoles,每台机器都有自己的会话,因此我不能使用TempData(使用Session)。

2 个答案:

答案 0 :(得分:1)

如果您使用Session的功能是阻止,则可以修复。通过一些配置,您可以使用Windows Azure的会话状态提供程序。就共享存储而言,它是无状态的,你的WebRoles也是无状态的。

您可以在此处获取所有说明:http://msdn.microsoft.com/en-us/library/windowsazure/gg185668.aspx

答案 1 :(得分:0)

您可以尝试将ModelState作为参数传递,或至少复制它或您需要的属性:

RedirectToAction("MyAction", 
   new System.Web.Routing.RouteValueDictionary() { { "modelState", ModelState } });