0


我在玩 MVC3 时遇到了一些麻烦。我有一个强类型的局部视图包含一个表单。它嵌入在一个大页面中。我想将此部分视图提交给控制器并更新一些字段。更新后,我希望嵌入在页面中的部分视图被替换为 html 包含新值,因为声明了 UpdateTargetId,但事实并非如此。不知道我能不能做到。任何帮助将不胜感激。
代码为:

public ActionResult Employee(Employee em)
{
    var em1 = new Employee
    {
        Id = 1,
        Name = "xing yanguang",
        Code = "131324e12"
    };

    return PartialView(em);
}

部分视图中的代码:

员工局部视图

4

1 回答 1

0

试试这个修改你的局部视图

//In Partial View 

 @model MvcApplication1.Employee

    <table>
        <tr>
            <td>
                @Html.TextBoxFor(m => m.Id)
            </td>
            <td>
                @Html.TextBoxFor(m => m.Name)
            </td>
             <td>
                @Html.TextBoxFor(m => m.Code)
            </td>
        </tr>
    </table>  

Now in your parent view 



// In View.cshtml
    <div id="div_employee">
       @Partail("partailView",Model)
    </div>
       @using (Ajax.BeginForm("Employee", "PO", new AjaxOptions { HttpMethod = "GET", UpdateTargetId = "div_employee", InsertionMode = InsertionMode.Replace }))
       {
           <input type="submit" value="save" />
       }

在控制器中

public string Employee(Employee em)
{
    var em1 = new Employee
    {
        Id = 1,
        Name = "xing yanguang",
        Code = "131324e12"
    };

    return RenderPartialViewToString("partailView",em1);
}


protected string RenderPartialViewToString(string viewName, object model)
        {
            if (string.IsNullOrEmpty(viewName))
                viewName = ControllerContext.RouteData.GetRequiredString("action");

            ViewData.Model = model;

            using (StringWriter sw = new StringWriter())
            {
                ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(ControllerContext, viewName);
                ViewContext viewContext = new ViewContext(ControllerContext, viewResult.View, ViewData, TempData, sw);
                viewResult.View.Render(viewContext, sw);
                return sw.GetStringBuilder().ToString();
            }
        }  

在控制器中添加另一种方法来获取部分视图的 RenderHtml,通过将ParttailViewName模型传递给 RenderPartialViewToString 方法,它将返回具有更新值的视图 Htmlstring。

于 2012-11-21T11:35:27.490 回答