在mvc3中动态添加javascript函数

Adding javascripts functions dynamically in mvc3

本文关键字:javascript 函数 添加 动态 mvc3      更新时间:2023-09-26

我正在创建一个动态形式的基础设施。这个基础结构将得到一个特定的XML,它将包括所有表单数据,从页面中的订单到验证器。

动态页面也可能包含需要某种验证的字段。验证不仅是微不足道的(例如"数字"/"字母数字"),它可能是更复杂的东西。

这就是为什么我想在我的XML中传递验证器javascript。

在传统Web应用程序上开发时,很容易将此代码植入页面头中。但是我不知道在使用MVC3时如何做到这一点,因为它不是一个正常的客户机-服务器应用程序。

解释一下这一点很重要—在我的控制器中,我将这个动态表单类传递给xml文件,它做了它应该做的一切,最后,我将结果植入ViewBag.table.

谁知道我怎么能种植javascript代码从控制器到视图头?

编辑:


我尝试了以下内容:

$(document).ready(function () {
        $.ajax({
            url: '@Url.Action("SetJScript", "MyPages")',
            type: 'POST',
            success: function (result) {
        var myscript = document.createElement('script');
                    myscript.setAttribute('type', 'text/javascript');
                    myscript.innerHTML = '$( document ).ready( function ( e ){' + result + '});';
                    document.getElementsByTagName('head').item(0).appendChild(myscript);
            }
        });

也:

    $(document).ready(function () {
        $.ajax({
            url: '@Url.Action("SetJScript", "MyPages")',
            type: 'POST',
            success: function (result) {
                var myscript = document.createElement('script');
                myscript.setAttribute('type', 'text/javascript');
                myscript.innerHTML = "function test() {alert('aa');}";
                document.getElementsByTagName('head').item(0).appendChild(myscript);
            }
        });

或更改:

myscript.innerHTML = "function test() {alert('aa');}";

:

myscript.innerHTML += "function test() {alert('aa');}";

,所以它将被添加到现有的"$ documentnet"。准备好了"功能。这些都不起作用。我一直收到"未知错误"

希望有帮助。

    $(document).ready(function () { 
        $.ajax(
    { url: '@Url.Action("SetJScript", "MyPages")',
     type: 'POST',
     success:   function(result) 
    { var myscript = document.createElement('script');      
       myscript.setAttribute('type','text/javascript'); 
       myscript.innerHTML = 'function test() {alert("aa");}'; 
       document.getElementsByTagName('head').item(0).appendChild(myscript); 
    } //end of success
    });
});