【发布时间】:2011-11-17 08:48:18
【问题描述】:
我正在尝试创建一个单页表单来创建“工作项”。其中一个属性是“工作项类型”的下拉菜单。
根据工作项类型,用户可能需要在名称-值-对样式属性网格(属性表)中提供附加信息。
我想在选择或更改工作项类型后立即动态呈现属性表。一旦用户提供了所有信息,他将单击提交以创建“工作项”。
这是我目前所拥有的:
@using (Ajax.BeginForm("AttributeData", new AjaxOptions() { UpdateTargetId="AttributeDataCell" }))
{
<div style="float:left">
@{
Html.RenderPartial("CreateWorkItemPartialView");
}
</div>
<div id="AttributeDataCell" style="float:right">
@Html.Action("AttributeData", new {id = 1})
</div>
}
控制器中的 AttributeData 动作只是渲染局部视图:
public ActionResult AttributeData(int id = 0)
{
var attributes = _workItemDataService.ListWorkItemTypeAttributes(id);
return PartialView("EditWorkItemAttributesPartialView", attributes);
}
现在我想将它与下拉列表的选择事件挂钩,以便在每次选择更改时,部分视图都会在上面的表格单元格中重新呈现。我想将选定的值作为 id 传递。
一种方法是强制表单提交自身(并因此重新呈现)。
如果这是正确的方法,我们该怎么做?特别是,我们如何只让属性表重新渲染?
如果有更好的方法实现上述,请指出。
谢谢
【问题讨论】:
标签: asp.net ajax asp.net-mvc-3 dynamic razor