【问题标题】:How can I pass string value for “asp-for” in .Net Core 2.0如何在 .Net Core 2.0 中为“asp-for”传递字符串值
【发布时间】:2017-08-21 12:58:04
【问题描述】:

我想创建一个通用视图,但我遇到了 asp-for 接受来自变量的字符串输入的问题。

我遇到的问题与此非常相似:How can I pass string value for "asp-for" in asp net 5

但是,该票证中提供的答案在 .Net Core 中不起作用。

以下是剃须刀页面的示例:

@foreach (var property in ViewData.ModelMetadata.Properties)
{
    var propertyName = property.DisplayName ?? property.PropertyName;

    <div class="form-group">
        <label asp-for="@propertyName" class="col-md-2 control-label"></label>
        <div class="col-md-10">
            <input asp-for="@propertyName" class="form-control" />
            <span asp-validation-for="@propertyName" class="text-danger"></span>
        </div>
    </div>

}

上面我正在尝试为对象的每个属性创建一个输入字段、输入名称和验证。

【问题讨论】:

    标签: c# razor asp.net-core-mvc


    【解决方案1】:

    看起来只有Html.Label() 等才有可能。请看这个答案:https://stackoverflow.com/a/58130119/332528

    所以你的情况是:

    @foreach (var property in ViewData.ModelMetadata.Properties)
    {
        var propertyName = property.DisplayName ?? property.PropertyName;
    
        <div class="form-group">
            @Html.Label(propertyName, null, new { @class = "col-md-2 control-label" })
            <div class="col-md-10">
                @Html.Editor(propertyName, new { htmlAttributes = new { @class = "form-control" } })
                @Html.ValidationMessage(item, new { htmlAttributes = new { @class = "text-danger" } })
            </div>
        </div>
    
    }
    

    我知道这很糟糕,但似乎没有更好的方法......似乎在 Razor 中,如果你向侧面迈出半步,一切都会完全破碎。我忍不住将它与 JSX 进行比较,在 JSX 中混合 JS 和 HTML 就可以正常工作,没有任何意外或神奇的语法。我希望我们有类似的 C#...

    【讨论】:

      猜你喜欢
      • 2016-03-20
      • 1970-01-01
      • 2012-06-03
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-11
      相关资源
      最近更新 更多