【发布时间】:2012-05-11 18:07:26
【问题描述】:
我正在使用 ASP.NET MVC 3。我有一个问题是否可以更新模型,即使它没有被发送到控制器?也许问题已经完成了,或者我做错了?
我有一个对控制器方法的 ajax 调用。我正在传递一个ID。我希望控制器在数据库中找到一些东西,然后更新模型,将其传递回视图。
我有一个相当大的模型...我找到了一些解决方案,将模型转换为 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 请求时,用于呈现视图的模型早已不复存在。
-
这就是我所害怕的。我想在我的模型中添加额外的东西,这个模型最初是用来渲染视图的。
-
此模型不再存在。您可以查询您的数据库以直接在那里更新它。
-
您打算如何使用该模型?你打算用 HTML 更新视图,你打算用 javascript 操作返回的数据吗?
标签: c# asp.net-mvc view controller