ASP.NET MVC(razor)在jQuery中使用Model

Kri*_*s-I 2 asp.net-mvc jquery jquery-ui razor

我想在jQuery函数中依赖于模型的属性(使用带有razor的ASP.NET MVC 3):

jQuery.datepicker.setDefaults(jQuery.datepicker.regional['xx']);
Run Code Online (Sandbox Code Playgroud)

要么

jQuery.datepicker.setDefaults(jQuery.datepicker.regional['yy']);
Run Code Online (Sandbox Code Playgroud)

任何的想法 ?

谢谢,

Cha*_*ino 7

所以你可以放入一个全局变量.所以在你看来,放这样的东西:

<script language="javascript" type="text/javascript">
    var userRegion = '@Model.UserRegion';
</script>
Run Code Online (Sandbox Code Playgroud)

然后在外部脚本中,您可以使用userRegion全局变量.

另一种方法可能是使用jQuery.data()方法.

因此,在您的视图中,将用户的region值附加到任何html元素 - body是一个很好的元素.然后你可以在你的外部JavaScript文件中获取它.

例如你的视图......可能是布局页面(在这种情况下你应该把它放在ViewBag中)

<html>
    <head>
        <!--blah-->
    </head>
    <body data-user-region="@(string.IsNullOrWhiteSpace(ViewBag.UserRegion) ? "en" : ViewBag.UserRegion)">
        <!--blah-->
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

然后你可以像这样抓住它:

var userRegion = jQuery.data(document.body, 'user-region');
jQuery.datepicker.setDefaults(jQuery.datepicker.regional[userRegion]);
Run Code Online (Sandbox Code Playgroud)