Во время выполнения вы можете выполнить ajax, чтобы получить действие контроллера, которое отобразит представление как строку, которая, в свою очередь, может быть вставлена / добавлена в DOM.
Создать новый результат действия, который возвращает JSON согласно ниже:
return new JsonResult
{
JsonRequestBehavior = JsonRequestBehavior.AllowGet,
Data = new { html = this.RenderPartialViewToString("YourPartialView", model) }
};
Примечания, выше используют следующие расширения контроллера:
public static string RenderPartialViewToString(this Controller controller, string viewName = null, object model = null)
{
if (string.IsNullOrEmpty(viewName))
{
viewName = controller.ControllerContext.RouteData.GetRequiredString("action");
}
controller.ViewData.Model = model;
using (var sw = new StringWriter())
{
ViewEngineResult 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();
}
}
Для дальнейшего чтения относительно этого метода расширения: http://craftycodeblog.com/2010/05/15/asp-net-mvc-render-partial-view-to-string/
Все, что осталось бы, - это выполнить передачу, передающую параметр, обозначающий количество элементов для рендеринга и добавления e возвратил содержимое в ваше представление. Возможно, что-то вроде:
$.getJSON('url', numberofitems, function (data) {
$('#somecontainer').html(data.html);
});
Извините, если я не сделал достаточно объясните. Я использую javascript для динамического вставки полей (это API интерфейса). Однако для некоторых полей, особенно для выпадающих списков, я надеялся использовать там помощника. –