将模型数据作为变量

时间:2015-11-13 13:30:04

标签: asp.net-mvc

我有一个从模型中导入数据的视图,我需要创建一个动作链接,将一部分模型数据发送回控制器

Index.cshtml

@model IEnumerable<App.Models.User>

<table class="table">
    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Number)
        </th>
        <th>
            @Html.ActionLink("Request", "Index", new { userNumber = //model.Number value })
        </th>
    </tr>
</table>

我试过了:

new { userNumber = model.Number }) //当前上下文中不存在名称模型

new { userNumber = Model.Number }) // IEnumerable不包含ModelNumber的定义(即使它确实如此)

2 个答案:

答案 0 :(得分:1)

由于您使用一组用户作为模型,因此需要使用foreach循环迭代模型以获取App.Models.User上的值。 Number属性可能位于App.Models.User课程上,而不是IEnumerable<App.Models.User>上。

这样的事情会起作用:

@foreach(App.Models.User user in Model) {

    Html.ActionLink("Request", "Index", new { userNumber = user.Number })

}

答案 1 :(得分:0)

Views\Shared文件夹下,添加DisplayTemplates文件夹。

在该文件夹中,创建一个名为User.cshtml的视图。

添加:

    <tr>
        <th>
            @Html.DisplayNameFor(model => model.Number)
        </th>
        <th>
            @Html.ActionLink("Request", "Index", new { userNumber = model.Number })
        </th>
    </tr>

然后在您的视图中添加以下内容:

<table>
    @Html.DisplayFor(model => model)
</table>