【问题标题】:Need Help Using @HTML.Label使用@HTML.Label 需要帮助
【发布时间】:2016-12-09 16:04:14
【问题描述】:

鉴于下面公认的简单类:

public class BallPointPen
{
    public int Id { get; set; }
    public Color color { get; set; }
}

public enum Color
{
    Black,
    Gold,
    Silver    
}

我想生成类似于以下内容的 ASP.NET HTML 元素:

@model BallPointPen
<label for="black">Black</label>
input type="radio" name="color" id="black" value="Black"><br>
<label for="gold">Gold</label>
<input type="radio" name="color" id="gold" value="Gold"><br>
<label for="silver">Silver</label>
<input type="radio" name="color" id="other" value="Silver"><br>

但使用 Razor @Html.Label 和 @Html.Radiobutton 助手。我的问题是使用@Html.Label 助手,它生成for=propertyname,而我需要它来生成for=radiobuttonid。如果有一个让我指定的重载,我没有在 Google 上找到它,因此我的问题。

【问题讨论】:

    标签: html asp.net razor


    【解决方案1】:

    你可以使用html属性重载来设置它们吗?

    @Html.LabelFor(m => m.color, new { @for = "gold" })
    @Html.RadioButtonFor(m => m.color, new { id = "gold" })
    

    【讨论】:

    • 嗯,这就是我问的原因。我是新手,我一直在关注的教程没有解决这个问题。但是另一个问题:为什么你有@for 而没有@id?
    • 您可以省略标签中 for 属性的 @。您只需要保留字(如“类”)。 @TheOldCrab 第二个参数是设置 HTML 属性,所以他在生成的标签上设置了 for 属性。
    • @TheOldCrab 我认为我的说法是正确的,帮助器的最后一个重载总是接受一个匿名对象,该对象可用于手动设置 html 元素的属性。
    猜你喜欢
    • 2014-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 1970-01-01
    • 2020-08-26
    • 2015-05-20
    • 1970-01-01
    相关资源
    最近更新 更多