【问题标题】:Can I get the html.HiddenFor / Html.Hidden create an id or should I just create it manually?我可以获得 html.HiddenFor / Html.Hidden 创建一个 id 还是应该手动创建它?
【发布时间】:2018-02-06 09:14:38
【问题描述】:

我这样做:

<%=Html.HiddenFor(o => o[i].HobbyId) %>

它创建了一个隐藏输入,但没有id(只是name,我需要id)。

我也可以让它创建一个id 吗?

atm 我这样做:

<%=Html.HiddenFor(o => o[i].HobbyId, new Dictionary<string, object>{{"id", " _ "+i+"__HobbyId"}}) %>

【问题讨论】:

    标签: asp.net-mvc


    【解决方案1】:

    更简洁的方法是

    <%=Html.HiddenFor(o => o[i].HobbyId, new {id = " _ "+i+"__HobbyId"}) %>
    

    但除此之外,您现有的方法还可以。如果你真的想要一个简单的语法,你可以创建一个调用 HiddenFor 的扩展方法,但这似乎不值得。

    【讨论】:

      【解决方案2】:

      我倾向于做一些事情,例如:

      @Html.Hidden(
          string.Format("{0}ObjectId", Model.BindingPrefix), 
          Model.ObjectId
      )
      

      产生这个:

      <input id="customerModel_ObjectId" name="customerModel.ObjectId" type="hidden" value="3a44d3eb-58ec-4229-9fe0-e420d9855bb7">
      

      id 和 name 约定是一致的,并且会产生不会更改的稳定 id 和 name 值。这对我来说非常有效。

      所以要将您的示例转换为我的格式:

      @Html.Hidden(
          string.Format(" _ {0}__{1}", i, HobbyId), 
          HobbyId,
      )
      

      ...这也应该可以满足您的需求。希望我在输入时没有注入任何语法错误。 :)

      【讨论】:

      • ...当然这是使用 MVC3 RC2 中的 Razor 语法,但您明白了,可以轻松地将其转换为 aspx 语法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多