你在ASP.NET MVC视图中编写JavaScript吗?还是在单独的JavaScrip
发布时间:2020-12-15 19:02:00 所属栏目:asp.Net 来源:网络整理
导读:试图改进我的编码风格我试过不同的解决方案,但我不知道什么是最好的。 我开始把JavaScript放入我的视图,但我不是特别喜欢这个解决方案。 它很难调试与Visual Studio,它的种类“污染”的页面。 我的新“趋势”是将页面的脚本放在单独的文件中。 我面临的唯
试图改进我的编码风格我试过不同的解决方案,但我不知道什么是最好的。
我开始把JavaScript放入我的视图,但我不是特别喜欢这个解决方案。 它很难调试与Visual Studio,它的种类“污染”的页面。 我的新“趋势”是将页面的脚本放在单独的文件中。 我面临的唯一的问题是与代码。 为了解决这个问题,我定义了JavaScript变量,像这样: <script type="text/javascript"> var PriceListFetchAction = '<%=Url.Action("Fetch","PriceList")%>'; var UploaderAction = '<%=Url.Action("UploadExcelPriceList","PriceList")%>'; var ModelId = '<%=Model.id%>'; var ImportType = '<%=Model.Type%>'; var customerCodeFetchAction = '<%=Url.Action("FetchByCustomerCode","Customers")%>'; var customerNameFetchAction = '<%=Url.Action("FetchByCustomerName","Customers")%>'; var ImportErpAction = '<%=Url.Action("ImportPriceListErp","PriceList")%>'; var imageCalendar = '<%=Url.Content("~/Content/Images/calendar.png")%>'; </script> 然后我使用我的JavaScript文件中的变量。 解决方法
我遵循一些规则:
>除非绝对必要,否则不要直接将变量附加到DOM。 所以,这里有一个例子: 我将添加jQuery和jQuery元数据到我的项目: 然后,在我的主js文件中,我将使用自己的命名空间扩展jQuery: $.extend({ fatDish : { url : {},urls : function(a) { $.extend($.fatDish.url,a); } } }); 几乎所有我定制的js逻辑将存储在$ .fatDish命名空间。 现在,假设我想传递一个MVC路由到$ .fatDish。在我的aspx页面,我会写下面的: <script src="@Url.Content("~/path/master.js")" type="text/javascript"></script> <script type="text/javascript"> $.fatDish.urls({ path1 : '@Url.Action("Index","Home")' }); </script> 在js文件中,我现在可以写: window.location = $.fatDish.url.path1; 第二种方法是使用jQuery元数据(我上面提到过)。在你的aspx页面上,你可以写如下: <div class="faux-link {act:'@Url.Action("Index","Home")'}">Go Somewhere</div> 然后,在您的js文件中,您可以抓取路由值如下: $('.faux-link').click(function() { var $this = $(this); var href = $this.metadata().act; window.location = href; }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 视图模型最佳实践中的ASP.NET MVC自定义验证
- 如何使用ASP.NET更改HTML页面元素的CSS类?
- asp.net-mvc – Sammy.js和Knockout.js =>模板没有模板?
- asp.net-mvc – MVC会话过期而不是身份验证
- ASP.NET – AJAX / JQUERY的重连接问题
- asp.net-mvc – MVC Razor获取月份名称
- .net – DotNetCore – 是否支持ApiExplorer,以及如何使用它
- asp.net-mvc – Kendoui MVC EditorTemplateName在PopUp编辑
- 在asp.net vnext上使用bearer token身份验证刷新令牌
- asp.net-mvc – 在ASP.NET MVC中的View和PartialView有什么