我正在使用以下代码:
public string RenderPartialToString(ControllerContext context, string partialViewName, ViewDataDictionary viewData, TempDataDictionary tempData)
{
ViewEngineResult result = ViewEngines.Engines.FindPartialView(context, partialViewName);
if (result.View != null)
{
StringBuilder sb = new StringBuilder();
using (StringWriter sw = new StringWriter(sb))
{
using (HtmlTextWriter output = new HtmlTextWriter(sw))
{
ViewContext viewContext = new ViewContext(context, result.View, viewData, tempData, output);
result.View.Render(viewContext, output);
}
}
return sb.ToString();
}
return String.Empty;
}
通过JSON返回局部 View 和表单。它可以正常工作,但是一旦我收到模型状态错误,我的 ValidationSummary 就不会显示。 JSON 仅返回默认表单,但不会突出显示验证错误或显示验证摘要。
我错过了什么吗?
这就是我调用 RenderPartialToString 的方式:
string partialView = RenderPartialToString(this.ControllerContext, "~/Areas/User/Views/Account/ChangeAccountDetails.ascx", new ViewDataDictionary(avd), new TempDataDictionary());
最佳答案
在这个问题上花了太多时间后,我发现不应将 ModelState
项添加到 viewContext.Controller.ViewData.ModelState
中,而应将其添加到 viewContext.ViewData.ModelState
。进行此更改后,将呈现 ModelState
错误。
关于asp.net - 使用 RenderPartialToString 时显示模型状态错误的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2740149/