在Javascript中访问MVC模型属性

时间:2014-09-05 16:02:12

标签: javascript asp.net-mvc razor

我在MVC项目中有以下视图页面

@foreach (var item in Model)
    {
            <tr>
            <td>
                @Html.DisplayFor(modelItem => item.ControlLabel)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.ControlType)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.ControlDatatype)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.MasterModule.ModuleName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Form.FormName)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.ControlID }) |
            @Html.ActionLink("Details", "Details", new { id = item.ControlID }) |
            @Html.ActionLink("Delete", "Delete", new { id = item.ControlID })
            </td>
        </tr>
    }

我想在我的javascript函数中访问ControlType,我可以这样做吗?如果是,那么请指导我

2 个答案:

答案 0 :(得分:1)

@foreach (var item in Model)
    {

        <tr>
            <td>
                @Html.DisplayFor(modelItem => item.ControlLabel)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.ControlType)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.ControlDatatype)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.MasterModule.ModuleName)
            </td>
            <td>
                @Html.DisplayFor(modelItem => item.Form.FormName)
            </td>
            <td>
                @Html.ActionLink("Edit", "Edit", new { id = item.ControlID }) |
            @Html.ActionLink("Details", "Details", new { id = item.ControlID }) |
            @Html.ActionLink("Delete", "Delete", new { id = item.ControlID })
            </td>
        </tr>

        if (item.ControlType == "blah")
        {
        <script type="text/javascript">

          alert("a");

        </script>

        }
    }

答案 1 :(得分:0)

当然,通过渲染。您可以在客户端javascript中呈现任何内容,例如:

<script>
   var controlType = "@(Model[0].ControlType)";
</script>

或者喜欢:

<a href="#" onclick="doSomethingFIrst(@(Model[0].ControlType))">

这样的事情;将0替换为所需模型集合中的索引。这样做很好但是你必须小心,因为你在这里渲染,所以它必须是客户端javascript(原始类型)或序列化数据(使用JSON.NET或类似的东西)可用的东西。