加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 为id而不是name设置HtmlFieldPrefix

发布时间:2020-12-15 19:48:26 所属栏目:asp.Net 来源:网络整理
导读:设置ViewContext.ViewData.TemplateInfo. HtmlFieldPrefix将添加所有name和id属性. 我想知道是否有一种方法可以只为id添加前缀并保留名称. 场景是这样的:AJAX在页面上多次加载局部视图.我们使用的JavaScript库需要使用id,但我们也希望能够发布表单(因此名称
设置ViewContext.ViewData.TemplateInfo. HtmlFieldPrefix将添加所有name和id属性.

我想知道是否有一种方法可以只为id添加前缀并保留名称.

场景是这样的:AJAX在页面上多次加载局部视图.我们使用的JavaScript库需要使用id,但我们也希望能够发布表单(因此名称需要与服务器模型匹配).

我们当前的解决方案是每次加载局部视图时生成一个唯一的数字,将HtmlFieldPrefix设置为items [n](其中n是生成的数字)以及我们采取行动来接收一系列项目(我们只需要收到一个).这为我们提供了一个全局唯一的id和一个名称,可以通过模型绑定器进行解析.

但这感觉很难看.有什么建议?

解决方法

我和你一样有同样的问题.
@{ ViewData.TemplateInfo.HtmlFieldPrefix = "Prefix"; }
@using(Html.BeginForm())
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)
    @Html.TextBoxFor(m => m.MerchantAccount.MerchantName,new { maxlength = 29,size = 35 })<br />
    @Html.ValidationMessageFor(m => m.MerchantAccount.MerchantName)
}

首先,我的主意是:在页面加载时使用jQuery删除所有名称的不需要的前缀.

$(‘[id * =“Prefix _’]).each(function(i,e){…

这里建议我们最终做了什么:https://stackoverflow.com/a/1318342/4946681

基本上,在控制器上,您可以说明要剥离的前缀(通过在方法签名中指定绑定前缀),并自动为您完成.

现在我们可以将我们的ID前缀蛋糕,并吃掉(绑定)它们!

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读