加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 在cshtml razor视图中分离JavaScript

发布时间:2020-12-15 07:56:54 所属栏目:百科 来源:网络整理
导读:我是ASP.NET / MVC3的新手,我正在试图弄清楚如何将我的 JavaScript(包含C#)与HTML的其余部分分开. 如果我将它们放入.JS文件并使用脚本标记插入它们,那么它们的C#方面就会停止工作.在MVC 3 razor中分离包含C#代码的JavaScript代码的最佳方法是什么? 谢谢. 解
我是ASP.NET / MVC3的新手,我正在试图弄清楚如何将我的 JavaScript(包含C#)与HTML的其余部分分开.

如果我将它们放入.JS文件并使用脚本标记插入它们,那么它们的C#方面就会停止工作.在MVC 3 razor中分离包含C#代码的JavaScript代码的最佳方法是什么?

谢谢.

解决方法

出于多种原因,您最好将大部分(如果不是全部)JS放入单独的JS文件中(这样您就可以利用重用,缩小,浏览器优化,内容交付网络等)

要将服务器端razor代码的结果读入JS文件,请使用以下方法之一:

1)将您的剃刀代码放入视图中的javascript变量(未测试代码)

<script type="text/javascript">
  if(!MyGlobalVariables){
     MyGlobalVariables = {};
  }
  MyGlobalVariables.IndexUrl = "@Url.Action("Index")";
</script>

2)使用自定义属性(最好以数据为前缀 – 如HTML 5 spec中所建议).请参阅此处的相关讨论:Can I add custom attribute to HTML tag?

<div data-index-url="@Url.Action("Index")"></div>

然后,在jQuery中使用$(this).attr(“data-index-url”)来访问渲染的剃刀标记.

3)将C#放入视图中的隐藏输入字段,并读取JS文件中的隐藏输入.

<input id="indexUrl" type="hidden" value="@Url.Action("Index")" />

要在jQuery中读取它,您将使用$(“#indexUrl”).val()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读