javascript - MVC3 with Razor - 避免在部分 View 上定义多个 javascript 函数

标签 javascript asp.net-mvc razor view partial

我们需要创建多个相同类型的分部 View ,但是这个分部 View 有一个javascript函数。如何避免在每个部分 View 上定义此函数?我们不想在其他地方定义这个函数。

最佳答案

我强烈建议更改解决方案以允许外部 javascript 引用。如果无法做到这一点,那么以下方法可能会起作用。首先,我假设你正在做类似的事情:

/Views/Shared/MyModelPartial1.cs/

@model MyModel

<script type="text/javascript">
  var a = "@Model.SomeStringProperty";
  var b = @Model.SomeNumberProperty;
</script>

<span>Some Html!</span>

/Views/Shared/MyModelPartial2.cs/

@model MyModel

<script type="text/javascript">
  var a = "@Model.SomeStringProperty";
  var b = @Model.SomeNumberProperty;
</script>

<div>Different Html Than 1</div>

如果您尝试在两个局部 View 之间共享此 Javascript,则创建另一个局部 View ,可能类似于:

/Views/Shared/MyModelJavascript.cs/

@model MyModel

<script type="text/javascript">
  var a = "@Model.SomeStringProperty";
  var b = @Model.SomeNumberProperty;
</script>

/Views/Shared/MyModelPartial1.cs/

@model MyModel

@Html.Partial("MyModelJavascript", Model)

<span>Some Html!</span>

/Views/Shared/MyModelPartial2.cs/

@model MyModel

@Html.Partial("MyModelJavascript", Model)

<div>Different Html Than 1</div>

关于javascript - MVC3 with Razor - 避免在部分 View 上定义多个 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9780775/

相关文章:

javascript - 为什么我的 javascript 没有在此 Razor 代码中执行?

asp.net-mvc - ASP.NET MVC : Custom Html Helpers in Razor

Javascript 检测菜单外的点击事件(Vanilla JS)

javascript - Ajax 无法在 IE 上运行

asp.net-mvc - AzureReader2 与 ImageResizer 前缀问题

javascript - 使用 Html.BeginCollectionItem 时 MVC AutoComplete EditorFor

javascript - 使用 jquery 从选择框中删除选择

c# - 密码字段的水印文本

javascript - 在提交 form2 之前从 form1 获取值到 form2 的任何可能方法

c# - 从 View 中的 IEnumerable 中选择或过滤