我的答案 - 我这个存档以供日后参考或帮助别人。
这是我的结构:
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