Asp.net mvc 3 MVC3将消息从一个控制器传递到另一个视图和/或控制器
我有一个MVC3 C#.Net web应用程序。具有从Excel导入功能的。此功能在速率控制器的导入方法中执行。它在“速率/导入”视图中查看。导入时,有些行成功,有些行不成功。我正在将错误收集到字符串[]数组中。如果成功导入一行或多行,则认为导入成功,因此应用程序将导航回“建议编辑”视图。我想将信息性错误传递回“建议编辑”视图以供显示。任何IDE如何做到这一点?有几种方法 TempData 这在您的控制器中可用。TempData在单个重定向中保持不变Asp.net mvc 3 MVC3将消息从一个控制器传递到另一个视图和/或控制器,asp.net-mvc-3,controller,message,Asp.net Mvc 3,Controller,Message,我有一个MVC3 C#.Net web应用程序。具有从Excel导入功能的。此功能在速率控制器的导入方法中执行。它在“速率/导入”视图中查看。导入时,有些行成功,有些行不成功。我正在将错误收集到字符串[]数组中。如果成功导入一行或多行,则认为导入成功,因此应用程序将导航回“建议编辑”视图。我想将信息性错误传递回“建议编辑”视图以供显示。任何IDE如何做到这一点?有几种方法 TempData 这在您的控制器中可用。TempData在单个重定向中保持不变 public ActionResult Pr
public ActionResult Process()
{
// ... Process your rows, get array of errors back ...
TempData["errors"] = errors;
return RedirectToAction("Edit");
}
public ActionResult Edit()
{
var errors = (IEnumerable<string>)TempData["errors"]; // Get the errors back.
return View(errors); // Pass into the view
}
public ActionResult Process()
{
// ... Process your rows, get array of errors back ...
for(var i = 0; i < errors.Length; i++)
{
ModelState.AddModelError("row" + i, errors[i]);
}
// Can't redirect here - ModelState doesn't persist.
return View("Edit");
}
这将呈现此html。该类是MVC设置的默认类
<div class="validation-summary-errors">
<span>The following row errors occured:</span>
<ul>
<li>...Error 1...</li>
... Other errors ...
</ul>
</div>
出现以下行错误:
- …错误1
... 其他错误。。。
有几种方法
TempData
这在您的控制器中可用。TempData在单个重定向中保持不变
public ActionResult Process()
{
// ... Process your rows, get array of errors back ...
TempData["errors"] = errors;
return RedirectToAction("Edit");
}
public ActionResult Edit()
{
var errors = (IEnumerable<string>)TempData["errors"]; // Get the errors back.
return View(errors); // Pass into the view
}
public ActionResult Process()
{
// ... Process your rows, get array of errors back ...
for(var i = 0; i < errors.Length; i++)
{
ModelState.AddModelError("row" + i, errors[i]);
}
// Can't redirect here - ModelState doesn't persist.
return View("Edit");
}
这将呈现此html。该类是MVC设置的默认类
<div class="validation-summary-errors">
<span>The following row errors occured:</span>
<ul>
<li>...Error 1...</li>
... Other errors ...
</ul>
</div>
出现以下行错误:
- …错误1
... 其他错误。。。
通过“应用程序导航回提案编辑”您的意思是在提交表单后进行重定向吗?如果是这样,您将能够存储信息的唯一位置是数据库(将ID传递给另一个控制器以查找字符串)、会话或cookie中。ViewBag/ViewData生命周期以请求的生命周期结束。重定向会从浏览器创建一个新的“请求”。所谓“应用程序导航回建议编辑”是指在提交表单后进行重定向吗?如果是这样,您将能够存储信息的唯一位置是数据库(将ID传递给另一个控制器以查找字符串)、会话或cookie中。ViewBag/ViewData生命周期以请求的生命周期结束。重定向会从浏览器创建一个新的“请求”。@宽大……非常感谢。好东西!关于ModelState的问题…ModelState如何显示错误?编辑视图中是否需要更多代码?Thanks@MikeTWebb是的,最后一行,@Html.ValidationSummary(“发生了以下行错误:”)代码>显示ModelState中的任何错误。更新了我的答案,结果是什么。@宽大……非常感谢。好东西!关于ModelState的问题…ModelState如何显示错误?编辑视图中是否需要更多代码?Thanks@MikeTWebb是的,最后一行,@Html.ValidationSummary(“发生了以下行错误:”)代码>显示ModelState中的任何错误。用呈现出来的内容更新了我的答案。