2011-05-26 82 views
8
@using(Html.BeginForm()) 
    { 
     <fieldset> 
    <p> 
    <label for="Title">Referans Adı</label> 
    <p> 
    @Html.TextBoxFor(Model=> Model.Name) 
    </p> 

模型的数据如何在JavaScript中使用,就像在html表单中使用的一样?JQuery如何使用模型?

javascript可以使用像html中使用的模型数据?(如Model.Name)

回答

9

是的。剃刀可解析以下就好:

<script type="text/javascript">  
    $(document).ready(function() { 
     alert("@Model.Name"); 
    }  
</script> 
+0

“不设置到对象的实例对象引用”给出了这样的错误。 – Mgnfcnt 2011-05-26 15:02:56

+0

@mgnfcnt,这意味着你的模型是空的。你是否正确设置模型? – Brandon 2011-05-26 15:04:17

+0

好的。谢谢...... – Mgnfcnt 2011-05-26 15:07:42

2

有些人喜欢你其实不应该做这种方式,而是加载模型JSON,并直接在脚本中使用这些javascsript元素,而不是剃刀语法。在编译/设计时,剃刀分析器有时会抛出错误(不是在运行时,因为我相信它只是与intellisense有关),而是在块中包含@whatever。

+0

希望我能给这个不仅仅是+1。 – Paul 2014-05-28 14:01:49

3

如果您想要将javascript保存在单独的.js文件中而不是您的视图中,则可以使用隐藏字段来存储该值。

<input type="hidden" id="name-hidden" value="@Model.Name" /> 

然后,您可以通过使用id在JavaScript中访问它。举例来说,在jQuery的:

$(document).ready({ 
    var $nameHidden = $('#name-hidden'); 
    alert('Old Name: ' + $nameHidden.val()); 

    $nameHidden.val('Some New Name'); 
    alert('New Name: ' + $nameHidden.val()); 
}); 
1

对我们这些谁仍然在一些老项目中使用的.aspx:

alert("<%= Model.OrderStatus %>");