在mvc3中动态添加javascripts函数

时间:2013-03-21 14:07:21

标签: javascript asp.net-mvc-3 jquery dynamic-programming

我正在创建一个动态表单基础架构。此基础结构将获得某个XML,其中包含从页面中的顺序到验证器的所有表单数据。

动态页面还可能包含需要某种验证的字段。验证不仅是微不足道的(例如“数字”\“字母数字”),它可能更复杂。

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

在传统的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');}";

因此它将被添加到现有的“$ documnet.ready”函数中。 它都没有奏效。 我一直收到“未知错误”

谢谢大家。

1 个答案:

答案 0 :(得分:0)

希望有所帮助......

    $(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
    });
});