价值提供者 在 MVC 3 中维护值请求/响应 ASP.NET



我有一个 ASP.NET MVC 3 控制器操作,它接受一个对象,如下所示:

    //// model.ReferenceNumber equals "-1"
    public ActionResult EditApplication(EditApplicationViewModel model)
    {
        if (!ModelState.IsValid)
        {
                  ...
        }
        // Existing Applicant
        model.ReferenceNumber = "";
        var msg = this.RenderPartialViewToString("_ExistingApplication", model);
    }

收到请求后,"模型.参考编号"等于"-1"。即使在将模型上的属性设置为空字符串 " 之后,"RenderPartialViewToString" 的结果仍然在"input" HTML 字段的 "Value" 属性中显示 "-1" 的值。

知道为什么会这样吗?

这是用于呈现分部视图的代码:http://craftycodeblog.com/2010/05/15/asp-net-mvc-render-partial-view-to-string/

public static string RenderPartialViewToString(this Controller controller, string viewName, object model)
{
    if (string.IsNullOrEmpty(viewName))
        viewName = controller.ControllerContext.RouteData.GetRequiredString("action");
    controller.ViewData.Model = model;
    using (var sw = new StringWriter())
    {
        var viewResult = ViewEngines.Engines.FindPartialView(controller.ControllerContext, viewName);
        var viewContext = new ViewContext(controller.ControllerContext, viewResult.View, controller.ViewData, controller.TempData, sw);
        viewResult.View.Render(viewContext, sw);
        return sw.GetStringBuilder().ToString();
    }
}

谢谢

在控制器 qction 中修改某些模型属性的值时,请确保也将其从 modelstate 中删除:

ModelState.Remove("ReferenceNumber");
model.ReferenceNumber = "new value";
var msg = this.RenderPartialViewToString("_ExistingApplication", model);

最新更新