0
找不到任何錯誤,無法在任何地方找到答案。我的問題是我的視圖模型後沒有更新視圖bean的改變視圖模型更改後沒有視圖更新
視圖模型:
public class OrderView
{
public Customer Customer { get; set; }
public Order Order { get; set; }
}
public class Order
{
public int OrderId { get; set; }
public int CustomerId { get; set; }
public List<string> DomenNames { get; set; }
}
public class Customer
{
public int Id { get; set; }
public string Name { get; set; }
public string Telephone { get; set; }
public string Email { get; set; }
}
控制器:
private OrderView ov;
public ActionResult Index()
{
return View(ov);
}
[HttpPost]
public ActionResult Index(OrderView model, FormCollection collection) {
return View("done");
}
public ActionResult BlankEditorRow(OrderView model) {
ov = model;
ov.Order.DomenNames.Add("");
return View("Index",ov) ;
}
查看:
@using (Html.BeginForm("Index","Order",FormMethod.Post, new {id = "createOrder"})) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Order</legend>
<div class="editor-label">
@Html.LabelFor(model => model.Order.DomenNames)
</div>
@for(int i = 0; i < Model.Order.DomenNames.Count; i++) {
<div>
@Html.EditorFor(item => item.Order.DomenNames[i])
</div>
}
<button type="button" id="b1" onclick="setallert()" >Click me</button>
...
和腳本:
<script type="text/javascript">
function setallert() {
$.ajax({
url: "Order/BlankEditorRow",
data: $('#createOrder').serialize(),
cache: false,
success: function (data) {
...?
}
});
};
</script>
將模型傳遞給控制器並通過視圖進行調試時,我可以看到模型已更改,但在某些情況下,視圖中沒有任何事情發生。它看起來像舊模式已到位。
你正在做一個阿賈克斯帖子,但你沒有做任何事情來更新成功視圖中的內容;您在成功回調中只有「* ...?*」。你問:如何顯示ajax文章的結果? –
是的。我不熟悉JavaScript。它應該以某種方式添加新的@ Html.EditorFor(item => item.Order.DomenNames [i])元素。 – NikVjazem
我建議尋找Razor的Ajax幫手,這對於這類東西很有用。 – McGarnagle