如何从单独的javascript文件访问模型属性?(MVC)
How to access a model property from seperate javascript file? (MVC)
现在我正在使用javascript中的模型属性作为传递给控制器的json对象中的值之一。问题是javascript将被分离在.js文件中,无法访问@Model。所以问题是;如何从单独的.js文件访问模型?
您可以像往常一样加载外部javascript,并将模型值作为属性发送到视图中的init方法:
<script type="text/url" src="externalscript.js"/>
<script type="text/javascript">
$(function() {
var model = home.views();
model.init({
modelProperty: '@Model.Property',
});
</script>
然后你的externalscript.js看起来像:
(function (window) {
home = window.home || {};
home.views = function () {
pub.init = function (options) {
var property = options.modelProperty;
};
return pub;
})(window);
并且您可以在外部脚本中随心所欲地使用您的属性。
您可以尝试RazorJs(不幸的是,似乎不再受干扰)
在Javascript文件中编写Razor风格的C#或VB.NET。而且包含一个http处理程序,用于在需要时提供这些文件。
您可以执行类似这样的操作:
视图/主页
@{
ViewBag.Title = "Home Page";
}
@Html.RazorJSInclude("~/Scripts/App/TestRazorJS.js")
<button id="btnSearch" name="submit" type="button" onclick="LoadFromRazor()">Search</button>
脚本/App/TestRazorJS.js
function LoadFromRazor() {
$.ajax({
url: '@Url.Action("Test", "Home")',
datatype: 'json',
type: 'GET',
cache: false,
success: function () { console.log('done'); },
error: function (xhr, status, error) {
console.log(status);
}
});
}
相关文章:
- 使用导航属性创建Kendo UI网格模型的问题
- 将输入值设置为ng模型属性[Angular]时出现问题
- 如何使用Undercore和Backbone在HTML中表示模型属性
- 主干中的模型属性未定义
- ng重复中的ng模型-初始化唯一作用域属性
- sails.js beforeCreate方法只接收required设置为true的模型属性
- 如何使用javascript访问sails.js模型中的属性
- 如何更改与Backbone集合中的模型相关联的几个元素的css属性
- 从骨干集合筛选模型,然后为这些模型设置属性
- Ember.js:未在组件'中渲染的模型的计算属性;关于变更的参考
- 当ng repeat上的复选框具有必需的属性时,角度ng模型将变为未定义
- 将属性模型复制到剪贴板
- Backbone JS Promises在模型上设置属性之前解析
- 比较主干中的两个模型属性
- 在ember.js中访问模型之外的计算属性
- 如何在sails.js中更改属性模型中的日期格式
- 如何使用setVisible()方法设置json模型中元素的可见属性
- MVC6将视图模型列表属性分配给javascript变量
- 更新淘汰视图模型属性时激发更改事件
- angularJS + 猫鼬: 类型错误: 无法读取未定义的属性“模型”