2012-05-05 12 views
0

サーバータグ内のビューのモデルプロパティを更新できるかどうかは、ユーザーが入力した後でJavaスクリプト関数内で更新できるかどうかだけです。ポストバックやAjaxコールなしで、MVCビューのModelプロパティを更新できますか? (ASP.Net MVC 3)

このコードは、モデルバインディングの助けを借りて、&で正常に動作しています。以下のハードコードされた情報をダイアログコントローラで取得できます。 「

@Html.TextBoxFor(m => m.empname) 
@Html.TextBoxFor(m => m.salary, new { @class = "homeSearchBy" }) 

@{ MvcApp3.Models.employee emp = new MvcApp3.Models.employee(); 
    emp.empid = 12121;  //Hard coded some information 
    emp.empname = "Biki"; 
    emp.empid = 23; 
    emp.salary = 111111111; 
    } 


@Html.MyFramework().Button("ok", Url.Action("CallingModalDialogView2", "Dialog", emp), "title1", "OK") 

(CallingModalDialogView2アクションメソッドで)しかし、私はテキストボックスにいくつかの情報を入れしようとしていたときに&はモデルプロパティに割り当て、その私が何か間違ったことをしています。動作していないか、これはに許可されていませんMVCあなたの質問のための

+0

私のここでの意図は、モデルを更新し、次のボタンをクリックすると、更新されたモデルをポストバックする(一部のページかもしれない)ポストバックなしで渡す。ユーザーがそのページにデータを入力すると、最後のボタンをクリックするとajax投稿が表示され、ユーザーがメインページとポップアップに入力したすべての情報が渡されます。 – Biki

答えて

3

短い答え:?いいえ

カミソリコードレンダリングサーバ側、サーバー側の動作が終了し、ブラウザでページを参照してください

あなたのモデル:。

@Html.TextBoxFor(m => m.empname) 
@Html.TextBoxFor(m => m.salary, new { @class = "homeSearchBy" }) 

@Html.HiddenFor(m=> m.empid) 
@Html.HiddenFor(m=> m.empname) 
@Html.HiddenFor(m=> m.salary) 

か:その後、

@Html.Hidden("empid", 1212) 
@Html.Hidden("empname", "Biki") 
@Html.Hidden("salary", 100000) 

<input type="button" id="change-button" value="change" /> 

jQueryのデータを変更すると非常に簡単です:私は多くのプロジェクトや仕事の罰金にこのソリューションを使用しています

<script> 
$(function(){ 
    $("#change-button").click(function(){ 
    $("#empid").val(12); 
    $("#empname").val("Morteza"); 

    // submit form without ajax 
    $("form").submit(); 

    // submit form with ajax 
    $.ajax({ 
     url: "Address of your action methode", 
     type: "Post", // "Get" 
     date: $("form").serialize(), 
     success: function(){ 
     //... 
     } 
    });   
    }); 
}); 
</script> 

私のために!

+0

次に、これらの情報はビュー自体でどのように更新されますか? @ {MvcApp3.Models.employee emp = new MvcApp3.Models.employee(); emp.empid = 12121; //いくつかの情報をハードコードしました emp.empname = "Biki"; emp.empid = 23; emp.salary = 111111111; } – Biki

+0

データのクライアント側を変更する場合は、などのクライアント側要素を使用する必要があります。 javascriptまたはJQueryで値を変更します。 – Morteza

+0

私が試したことはthatsですが、私のモデルを更新できないことがわかりました。あなたはそれを試して、うまくいけばサンプルを投稿できますか? – Biki

関連する問題