1

我正在创建一个动态形式的基础设施。该基础设施将获得一个特定的 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”函数中。都没有奏效。我不断收到“未知错误”

谢谢你们。

4

1 回答 1

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
    });
});
于 2013-03-22T04:15:44.520 回答