如何在 asp.net mvc5 视图中访问数组值?

发布时间: 2016/7/9 21:10:05
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我需要在视图中为每个物料标签生成数组是在模型中。

这是到目前为止所。

Reference.cs

public class Reference
{
    private string[] itemList = { "Shirt", "T-shirt", "Denim" };


    public string[] Item {
        get{
            return itemList;
        }

        set {
            itemList = value;
        }
    }
    public int ShirtId{get;set;}
    public int TShirtId { get; set; }
    public int DenimId { get; set; }
}

index.cshtml

@model WebApplication1.Models.Reference

@{
    ViewBag.Title = "Index";
}

<h2>Update Your References Here</h2>
<br>
<p> Please type in the reference code of the item in the corresponding text box</p>
<section id="reference-update">
   @using (Html.BeginForm()) { 
        <fieldset>
            <legend> Reference Items</legend>

            <div class="form-horizontal">


                <div class="item">
                    @Html.LabelFor(model=>model.Item[0])
                </div>
                <div class="input-lg">
                    @Html.TextBoxFor(model => model.ShirtId)
                </div>
            </div>
        </fieldset>
   }
</section>

但我得不到一个名为"衬衫"标签 (标签命名"项目 [0]"显示) 的视图中。如何解决此问题?请注意,我是个初学者。

编辑︰ 控制器代码

public class ReferenceController : Controller
{
    // GET: Reference
    [Authorize]
    public ActionResult Index()
    {
        return View("Index");
    }
}

解决方法 1:

它不会为工作 @Html.LabelFor() 因为作为你看帮手的签名︰

public static MvcHtmlString LabelFor<TModel, TValue>(
   this HtmlHelper<TModel> html,
   Expression<Func<TModel, TValue>> expression
)

你需要一个表达式,用于标识要显示的属性。数组项不是一个可显示的属性。

您可以更改到 html 代码︰

@model WebApplication1.Models.Reference

@{
   ViewBag.Title = "Index";
}

<h2>Update Your References Here</h2>
<br>
<p> Please type in the reference code of the item in the corresponding text box</p>
   <section id="reference-update">
    @using (Html.BeginForm()) { 
    <fieldset>
        <legend> Reference Items</legend>

        <div class="form-horizontal">
            @foreach(var item in Model.Item)
            {
               <div class="item">
                  <label>@item</label>
               </div>
            }
            <div class="input-lg">
                @Html.TextBoxFor(model => model.ShirtId)
            </div>
        </div>
    </fieldset>
  }

如果你只是想在你的模型中生成的每个项的标签。

编辑︰

你控制器代码更改为︰

public class ReferenceController : Controller
{
    // GET: Reference
    [Authorize]
    public ActionResult Index()
    {
        var model = new WebApplication1.Models.Reference();
        return View("Index", model);
    }
}
官方微信
官方QQ群
31647020