2011-04-10 58 views
0

在一個ASP.NET MVC 3(Razor)應用程序中,主屏幕分爲兩部分: (2格命名爲:leftColumn和rightcolum,左列爲菜單,該rifhtcolumn是內容)ASP.NET MVC ...導航和顯示錯誤

一,我在菜單上的項目點擊, 「添加」 屏幕出現在rightcolumn

HTML

var jqxhr = $.post("/Customer/Add", function (data) { 
    $('#rightcolumn').html(data); 
}) 
.success(function() {}) 
.error(function() { }) 
.complete(function() { }); 

控制器

public PartialViewResult Add() 
{ 
    return PartialView("Add"); 
} 

II。我填寫表格,然後發佈,如果插入成功,我會顯示客戶列表,如果出現錯誤,我想將表格填入 已填寫的值(並且最後一點對我有用),並顯示在jQuery UI模型表單中的錯誤消息。 HTML

@using (Html.BeginForm("Save", "Customer", FormMethod.Post)) 
{ 
    <table style="width:100%;"> 
    <tr>...</tr> 
    <tr> 
     <td colspan="2"><input type="submit" value="Save"/></td> 
    </tr> 
    </table> 
} 

控制器

public ActionResult Save(CustomerModel model) 
{ 
    SaveOrUpdate(model); 

    if(model.hasError()) 
     return ReturnToAction("Add", model); 
    model.List = GetList(); 
    return View("List", model); 
} 

我有兩個問題:

  1. 當出現錯誤時, 「添加」 顯示視圖,但不正確的列,但在沒有佈局的全窗口中
  2. 模型(客戶端數據)不在模型中。

我該怎麼做?

感謝,

+0

當有* *任何類型的錯誤,或一些特別的錯誤? – 2011-04-10 09:10:50

+0

你是否檢查過該頁面的html源代碼?左右欄還有兩個div嗎? – ChristiaanV 2011-04-10 09:22:21

回答

0

你可以使用一個AJAXify這種形式,以便更新,只有當它被提交rightColumn股利。該jquery form plugin是非常好的用於這一目的:

$.post('@Url.Action("Add", "Customer")', function (data) { 
    $('#rightcolumn').html(data); 
    ajaxifyForm(); 
}); 

其中ajaxifyForm功能可能是這樣的:

function ajaxifyForm() { 
    $('#rightcolumn form').ajaxForm(function(data) { 
     $('#rightcolumn').html(data); 
     ajaxifyForm(); 
    }); 
} 
+0

問題未提交表單。但通過對錶單進行AJAX化處理,當您提交時,整個頁面將不會重新載入,但只有表單,並且如果出現錯誤,請保留表單並在錯誤消息中顯示錯誤消息,並將錯誤消息顯示在服務器端 – 2011-04-10 12:43:07

+0

@ Kris-I上在'rightcolumn' div中顯示錯誤信息。 – 2011-04-10 12:45:04

+0

1.當我這樣做時,控制器不會收到填充的模型。2.在示例代碼中,如何知道服務器端的錯誤? – 2011-04-10 13:19:36