我有一个关于JavaScript调用的形式提交,该模型被从控制器的最新一个问题,但它不是在视图中更新。我正在考虑将模型更新为JavaScript中的新模型值。使视图显示最新型号值 可以这样做吗?可我们通过整个模型的JavaScript asp.net的MVC
感谢, 迈克尔
我有一个关于JavaScript调用的形式提交,该模型被从控制器的最新一个问题,但它不是在视图中更新。我正在考虑将模型更新为JavaScript中的新模型值。使视图显示最新型号值 可以这样做吗?可我们通过整个模型的JavaScript asp.net的MVC
感谢, 迈克尔
你提的问题是非常不清楚,你没有提供的源代码,这使得事情变得更加明朗。从你可能已经张贴的各种意见,我认为你正试图在不脱离模型状态消除它,当同样的观点再次渲染显示旧的值更新POST操作里面的一些模型值。
所以我假设你有一个看起来接近这个视图模型:
public class MyViewModel
{
public HttpPostedFileBase File { get; set; }
public string SomeValue { get; set; }
}
和控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyViewModel
{
SomeValue = "initial value"
};
return View(model);
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
// Notice how the SomeValue property is removed from the
// model state because we are updating its value and so that
// html helpers don't use the old value
ModelState.Remove("SomeValue");
model.SomeValue = "some new value";
return View(model);
}
}
和视图:
<% using (Html.BeginForm(null, null, FormMethod.Post, new { enctype = "multipart/form-data" })) { %>
<div>
<%= Html.LabelFor(x => x.SomeValue) %>
<%= Html.EditorFor(x => x.SomeValue) %>
</div>
<div>
<label for="file">Attachment</label>
<input type="file" name="file" />
</div>
<input type="submit" value="OK" />
<% } %>
达林因为你已经完成了,我真的很感谢你。但我还没有表现出源代码bcoz问题是一个局部问题。现在我想通了,和上面将正常工作,但在我的情况我有两个表单标签,如果我觉得什么都u必须加入到第一班留在同一页,我将这个表单作为document.body.appendChild(iframe)定位到iframe; 的document.getElementById(form_id).TARGET = iFrame_id;因此iframe在从控制器返回后不更新模型数据。 – michael
岂不将表单通过AJAX提交,让控制器操作返回一个新视图,并根据请求回调更新DOM,会更清晰? –
控制器返回到相同的观点与更新的模式,因为我上传提交按下模型file.after我无法通过AJAX提交没有更新是一样的前代车型再一次我来那一页,然后该模型已更新。所以我想用javascript来更新同一页面上的模型。可以这样做吗? – michael
我不知道我明白!你说你通过控制器更新模型,然后用更新后的模型返回相同的视图。你如何提交表格? HTTP响应发生了什么? –