我必须在 JS 文件中准备好模型值来编写验证。这可能吗?
这似乎不适用于 JS 文件
var name = <%: Model.Name %>
我必须在 JS 文件中准备好模型值来编写验证。这可能吗?
这似乎不适用于 JS 文件
var name = <%: Model.Name %>
It will not work in js file, but you can write it in script tag like this:
<script type="text/javascript">
var name = '<%: Model.Name %>';
</script>
它可能对您有帮助
<script type="text/javascript">
var name = @Model.Name ;
</script>
您可以将模型放在隐藏字段中,然后在 Js 文件中读取
你可能有一个标签,它的 id 是你的模型的名称:
<tag id='@Model.Name' class="test"></tag>
在 JS 文件中,您可以获取模型的名称,如下所示:
var name=$("tag.test").attr("id");
我最近写了一篇关于这个主题的博客:使用部分 Razor 视图生成外部 JavaScript 文件。
我的解决方案是使用自定义属性 ( ExternalJavaScriptFileAttribute
),它按原样呈现部分 Razor 视图,然后在不带周围<script>
标签的情况下返回它。这使它成为一个有效的外部 JavaScript 文件。
此外,您可能想了解6 种将 .NET 服务器端数据传递给 JavaScript 的方法。
我必须指出,在您的标题中您提到了 Razor,但在问题中您使用的是老式的 aspx 语法。那么您使用的是 Razor 还是网络表单?
在任何情况下,您都应该将您的模型放在单引号中'@Model.YourField'
或'<% Model.YourField %>'
与此非常相似。
通过这种方式或其他方式,这是成功回答的问题,可以准确回答您的问题:
从外部 Javascript 文件访问 ASP.NET MVC 模型数据
以防万一,这是另一个示例,供您Model
使用您在问题中描述的旧学校风格来读取值:
如何在 View 的 javascript 部分访问 ASP MVC 中的 Model.Something 值
希望这会有所帮助,如果没有,请告诉我。