我将渲染部分视图作为Ajax请求的一部分。
当我从视图中调用部分视图时:
int i=0; foreach(var rule in Model.Rules) { @Html.Partial("ValidationRuleRow",rule,new ViewDataDictionary { TemplateInfo = new System.Web.Mvc.TemplateInfo { HtmlFieldPrefix = string.Format("Rules[{0}]",i) } }) i++; }
我可以设置HtmlFieldPrefix以允许适当的模型绑定。
我希望用户能够通过ajax快速添加一个新的ValidationRuleRow,如:
$.ajax({ type: "GET",url: "/Monitors/NewMonitorValidationRule",success: function (data,textStatus,jqXHR) { var element = $(data); $("#ValidationRuleContainer").append(element); } });
所以我在控制器中有一个动作来获取HTML:
public ActionResult NewMonitorValidationRule() { ValidationRule rule = new ValidationRule{Id = TempSurrogateKey.Next}; var view = PartialView("ValidationRuleRow",rule); // CODE TO SET PartialView field prefix return view; }
返回的HTML没有前缀。在控制器中的Action中调用PartialView时是否有设置前缀?