私はASP.NET MVC 3を使用しています。コントローラーに送信されていなくても、モデルを更新することができるかどうか質問がありますか?おそらく問題は完全であるか、私は間違ったやり方で物事をしていますか?コントローラーのモデルを更新しますか?
コントローラメソッドへのajax呼び出しがあります。私はIDを渡しています。私は、コントローラがdb内のいくつかのものを見つけて、モデルを更新してビューに戻すようにしたいと思います。
私は非常に大きなモデルを持っています...私はいくつかのソリューションを見つけました。モデルをjavascriptオブジェクトに変換し、コントローラに送信します。それは唯一の/正しい方法ですか?
How to send a model in jQuery $.ajax() post request to MVC controller method
私は多分、コントローラが、私はそれでいくつかのフィールドを更新することができたモデルを、持っていると思いましたか?
コントローラへの呼び出し:
function getBis(id) {
$.ajax({
type: "GET",
url: '@Url.Action("GetBis")',
data: { "id": id },
dataType: 'json',
cache: false,
success: function (data) {
// Do something here
},
error: function (jqXHR, textStatus, errorThrown) {
alert("Problem!");
}
});
}
コントローラコード:
public ActionResult GetBis(string id)
{
BeslutIStortDTO viewModel = new BeslutIStortDTO();
int theId;
if (!Int32.TryParse(id, out theId))
throw new Exception("Wrong id");
viewModel = _blLayer.GetBIS(theId);
// somehow update the model here!
return View("index", viewModel);
}
あなたは何をしようとしていますか?どのモデルを更新しますか?ビューをレンダリングするために使用されたモデルは、AJAXリクエストをトリガーするまでには、ずっと前から消えていました。 –
それは私が恐れていたものでした。最初のビューをレンダリングするために使用されたものを私のモデルに追加したいと思います。 – kaze
このモデルはもう存在しません。データベースを直接クエリして更新することができます。 –