渲染用于部分视图的脚本?

我已经看到许多消息来源指出将脚本放在部分视图中是不正确的/不正确的做法,但这引发了一个巨大的问题......

你应该如何运行与部分视图交互的脚本? 我试过使用@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

上一篇: Render scripts for use in Partial View?

下一篇: RESTful API for SAN/NAS system