MVC並不支持視圖到字符串,它只是返回它。但是,您可以創建一個自定義控制器,並使用允許的方法。我在互聯網上的某個地方挑選了這些代碼 - 無法回想起它在哪裏 - 它的工作非常出色。
public class ExtendedController : Controller
{
public string RenderPartialView(string viewName, object model)
{
if (string.IsNullOrEmpty(viewName))
viewName = this.ControllerContext.RouteData.GetRequiredString("action");
this.ViewData.Model = model;
using (var sw = new StringWriter())
{
ViewEngineResult viewResult = ViewEngines.Engines.FindPartialView(this.ControllerContext, viewName);
var viewContext = new ViewContext(this.ControllerContext, viewResult.View, this.ViewData, this.TempData, sw);
viewResult.View.Render(viewContext, sw);
return sw.GetStringBuilder().ToString();
}
}
}
,然後創建控制器
public class MyController : ExtendedController
{
public ActionResult MyAjaxOp()
{
List<int> MyList = new List<int>(); // Populate the list as required
object MyHelperModel = new object(); // View Model as required
object rtn = new { html = RenderPartialView("MyHelperView", MyHelperModel), list = MyList}
return Json(rtn, JsonRequestBehavior.AllowGet);
}
}
這將允許你在渲染視圖放入一個字符串,並將其傳遞到客戶端。
以上是未經測試的示例代碼,因此請修改您的要求。
不錯,這個作品很棒!謝謝。 –