为什么我无法从javascript访问我的模型对象

时间:2014-05-11 14:19:43

标签: javascript asp.net-mvc

@using Demo.Models
@model Demo.Models.MyClass

@{
    ViewBag.Title = "Details";
}

<div>
    <h4>Details: @Html.DisplayFor(model => model.Id)</h4>
    <hr />
    <dl class="dl-horizontal">
        <dt>
            @Html.DisplayNameFor(model => model.Name)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.Name)
        </dd>

        <dt>
            @Html.DisplayNameFor(model => model.Age)
        </dt>

        <dd>
            @Html.DisplayFor(model => model.Age)
        </dd>

    </dl>
</div>

<p>
    @Html.ActionLink("Back to List", "Index")
</p>

@section Scripts {
    <script type="text/jscript">

        $(document).ready(function() {
            alert(@Model.Id);
        });
    </script>
}

3 个答案:

答案 0 :(得分:1)

使用此代码:

<script type="text/jscript">
   $(document).ready(function() {
        alert(@Html.Raw(Json.Encode(Model.Id)));
   });
</script>

答案 1 :(得分:1)

javascript之前的所有内容都是对服务器的指令。 @Model是对传递给呈现视图的代码的模型的引用 - 这发生在服务器上。

如果要访问模型的ID,则必须将其呈现在页面的某个位置,最有可能是JavaScript中的文字或可以通过jQuery访问的HTML元素的值。

答案 2 :(得分:0)

您可能想要映射到JS。 例如:

<script>
var id = @Model.Id;
</script>

您将能够使用Javascript var id