我的答案 - 我這個存檔以供日後參考或幫助別人。
這是我的結構:
1)Create.aspx(的ViewPage)使用的RenderPartial( 「製表CreateEditForm」)來呈現創建/編輯的形式,這是 2)製表CreateEditForm.ascx(該部分) 3)創建檢測正在進行的請求的操作。如果我們正在發出AJAX請求,我們可能不想呈現默認情況下的Create.aspx,而是渲染Tab-CreateEditForm,因爲它僅包含表單標記和字段以及NO頁面指令,頭部,標題和所有Create.aspx中的其他元素。
所以動作看起來是這樣的:
//
// GET: /Tab/Create/{tabGroupSlug}
[CanReturnModalView]
[Authorize(Roles = "Administrators")]
public ActionResult Create(string tabGroupSlug)
{
Tab tab = new Tab();
if (Request.IsAjaxRequest())
return View("Tab-CreateEditForm", tab); // returns partial
return View(tab); // returns Create.aspx
}
這是我的編輯操作也使用同樣的技術,因爲編輯視圖(Edit.aspx頁)也使用相同的編輯部分控制。
//
// GET: /Tab/Edit/{slug}
[CanReturnModalView]
[Authorize(Roles = "Administrators")]
public ActionResult Edit(string slug)
{
Tab editing = (Tab) _repository.GetInstance(slug);
if (Request.IsAjaxRequest())
return View("Tab-CreateEditForm", editing); // returns partial
return View(editing); // returns Edit.aspx
}
這是真的,如果我的意見包括所有的表格代碼,但事實上我有我的表格在ASCX。就像SLaks說的那樣.. – mare 2010-03-22 20:07:32