渲染用于部分视图的脚本?
我已经看到许多消息来源指出将脚本放在部分视图中是不正确的/不正确的做法,但这引发了一个巨大的问题......
你应该如何运行与部分视图交互的脚本? 我试过使用@section scripts { }
或类似的东西,但它不起作用。 完全一样。 该部分包含脚本很好,但当Partial被加载到完整的View中时,它们不会被渲染。
另外,我无法在完整视图中渲染我的部分视图需要的脚本,因为脚本从Model
提取值,该值仅在部分视图中呈现,因为它是实际与数据一起工作的难题。
我希望这听起来不太复杂......我如何才能有效,高效地和正确地呈现脚本以用于Partial View的元素和Model
?
@keyCrumbs我不会给你一个直接的答案,但有些东西供你分析。
您为您调用脚本的最大问题之一是部分视图是代码的复制。
想想你会用ajax来获得部分视图,你会继续这样做一段时间。 在每次调用中,您都将下载脚本代码,并将其放入html中。 每次你在html中重置脚本块时,函数被重置,变量被重置。 这可能是一个很大的问题,取决于你的js代码。
其他的一点是响应的大小,你可以说,但是js的尺寸很小,我会说这个大小乘以用户的每次呼叫,然后乘以永远的用户连接。
所以最后,在这种情况下,你的解决方案是:在页面中创建函数,并在部分视图中调用函数,如下所示:
您的网页:Page.ctml
<script type="text/javascript">
function myPartialView_Load() {
$("birth").datepicker();
$("phone").mask("000-0000");
}
</script>
<!-- Some other code here -->
<div>
<!-- Or you can call from a ajax or other way... -->
@Html.Action("MyActionPartialView")
</div>
您的部分视图:MyPartialView.cshtml
<script type="text/javascript">
$(function () { myPartialView_Load(); });
</script>
<form>
<input type="text" name="birth" id="birth" />
<input type="text" name="phone" id="phone" />
</form>
所以,正如你所看到的问题不在于将js放在局部视图中,而在于如何做。 所有优秀实践规则都有一个“为什么”在后面,如果你明白了“为什么”,那么你就可以确定规则有多大帮助而不是负担。 并决定是否打破。
就像一个说,我没有给你一个最终的答案,但你的事情。 您可以使用其他方法来解决问题。
链接地址: http://www.djcxy.com/p/72237.html