首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >ASP.NET MVC3在调用Controller.PartialView时添加HtmlFieldPrefix

ASP.NET MVC3在调用Controller.PartialView时添加HtmlFieldPrefix
EN

Stack Overflow用户
提问于 2011-07-08 06:14:36
回答 2查看 14.2K关注 0票数 21

我将呈现一个部分视图作为Ajax请求的一部分。

当我从视图中调用分部视图时:

代码语言:javascript
复制
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,如:

代码语言:javascript
复制
$.ajax({
    type: "GET",
    url: "/Monitors/NewMonitorValidationRule",
    success: function (data, textStatus, jqXHR) {
        var element = $(data);
        $("#ValidationRuleContainer").append(element);
    }
});

所以我在我的控制器中有一个动作来获取HTML:

代码语言:javascript
复制
public ActionResult NewMonitorValidationRule()
{
    ValidationRule rule = new ValidationRule{Id = TempSurrogateKey.Next};
    var view = PartialView("ValidationRuleRow", rule);
    // CODE TO SET PartialView field prefix
    return view;
}

返回的HTML没有前缀。当从控制器中的操作调用PartialView时,有没有设置前缀的方法?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-05-03 23:11:22

更好的是,您可以在控制器操作中设置ViewData.TemplateInfo.HtmlFieldPrefix,

代码语言:javascript
复制
public Actionresult MyAction()
{
   ...
   ViewData.TemplateInfo.HtmlFieldPrefix = "MyPrefix";

   return PartialView("MyView", viewmodel);
}

视图模型中不需要ViewBag或属性。

票数 32
EN

Stack Overflow用户

发布于 2011-07-08 06:25:27

您可以将此信息作为视图模型的一部分进行传递:

代码语言:javascript
复制
public ActionResult NewMonitorValidationRule()
{
    ValidationRule rule = new ValidationRule{Id = TempSurrogateKey.Next};
    // CODE TO SET PartialView field prefix
    rule.MyPrefix = "Rule[153]";
    return PartialView("ValidationRuleRow", rule);
}

在局部视图ValidationRuleRow.cshtml中,使用此视图模型属性来设置前缀:

代码语言:javascript
复制
@{
    if (!string.IsNullOrEmpty(Model.MyPrefix))
    {
        ViewData.TemplateInfo.HtmlFieldPrefix = Model.MyPrefix;
    }
}
票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6617768

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档