1

動的フォーム インフラストラクチャを作成しています。このインフラストラクチャは、ページ内の順序からバリデータまで、すべてのフォーム データを含む特定の XML を取得します。

動的ページには、何らかの検証が必要なフィールドが含まれている場合もあります。検証は単純なだけでなく ("numeric"\"alphanumeric" など)、より複雑なものになる可能性があります。

そのため、バリデータの JavaScript を XML に渡したいと考えています。

従来の Web アプリケーションで開発する場合、このコードをページ ヘッダーに埋め込むのは簡単です。しかし、MVC3 は通常のクライアント サーバー アプリケーションではないため、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 に答える