asp.net-mvc - 为 id 设置 HtmlFieldPrefix 但不是名称

标签 asp.net-mvc razor

设置ViewContext.ViewData.TemplateInfo.HtmlFieldPrefix将添加所有 nameid属性。

我想知道是否有办法只为 id 加上前缀并离开 name独自的。

场景是这样的:AJAX 在一个页面上多次加载部分 View 。我们使用的 JavaScript 库需要使用 id s 但我们也希望能够发布表单(因此 name s 需要匹配服务器模型)。

我们目前的解决方案是每次加载局部 View 时生成一个唯一编号,设置HtmlFieldPrefixitems[n] (其中 n 是生成的数字)并且我们的操作接收 items 的数组(我们只需要收到一个)。这给了我们一个全局唯一的idname可以由模型绑定(bind)器解析。

不过,这感觉很难看。有什么建议么?

最佳答案

我和你有同样的问题。

@{ 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

基本上,在 Controller 上,您声明要剥离的前缀(通过在方法签名中指定绑定(bind)前缀),它会自动为您完成。

现在我们可以拥有我们的 ID 前缀蛋糕,并且也可以吃(绑定(bind))它们!

关于asp.net-mvc - 为 id 设置 HtmlFieldPrefix 但不是名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24658505/

相关文章:

asp.net-mvc - 使用Asp.Net C#MVC4和Json,如何使我的图表根据页面数据表进行更新

c# - 如何通过使用C#正则表达式进行Elasticsearch将json格式的句子转换为另一句?

c# - 试图搭建一个 View ,我得到 "unable to retrieve Metadata for"和 'validation error' 'entity type has no key defined'

asp.net-mvc - @Functions 从父 Razor 布局继承

.net - 什么是 session 和 session 变量?

ASP.NET MVC 希望我将 SQL Server 数据库文件存储在 App_Data 文件夹中 - 应该吗?

javascript - 在 javascript 代码中使用 Url.Action 的更好解决方案

c# - 在 Web.config 中使用 configSource 时,不支持使用 EntityFramework 的脚手架 Controller 或 View

c# - 为什么在 MVC4 Razor View 中找不到扩展方法?

c# - .net 核心网站不呈现 CSS