ตัวอย่าง
// ในรูปแบบ
public class MyModel
{
[Required]
public string Name{ get; set; }
}
// ใน PartailView //PartailView.cshtml
@model MyModel
<div>
<div>
@Html.LabelFor(model=>model.Name)
</div>
<div>
@Html.EditorFor(model=>model.Name)
@Html.ValidationMessageFor(model => model.Name)
</div>
</div>
ใน Index.cshtml มุมมอง
@model MyModel
<div id="targetId">
@{Html.RenderPartial("PartialView",Model)}
</div>
@using(Ajax.BeginForm("AddName", new AjaxOptions { UpdateTargetId = "targetId", HttpMethod = "Post" }))
{
<div>
<input type="submit" value="Add Unit" />
</div>
}
ในตัวควบคุม
public ActionResult Index()
{
return View(new MyModel());
}
public string AddName(MyModel model)
{
string HtmlString = RenderPartialViewToString("PartailView",model);
return HtmlString;
}
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();
}
}
คุณจะต้องผ่านเมธอด ViewName และ Model ไปยัง RenderPartialViewToString มันจะกลับมาคุณดูด้วยการตรวจสอบซึ่งคุณใช้ในรูปแบบและผนวกเนื้อหาใน div "targetId" ใน Index.cshtml ฉันด้วยวิธีนี้โดยจับ RenderHtml ของมุมมองบางส่วนที่คุณสามารถใช้การตรวจสอบ