超过一个Http。RenderAction()在一个单一的查看
-
05-07-2019 - |
题
因为我们都知道 RenderAction()
是两部分:
- Asp.net 软1期货或
- Asp.net 视2Beta2
并允许我们呈现的行动的结果内另一种观点或局部视图。
描述
- 你有一个与多个部分的风景显示使用
RenderAction()
帮手。 - 至少两个部分呈现的景致
<form>
可能是通过使用Html.BeginForm()
就回到原始图。 - 回发 是不是 执行通过呼吁阿贾克斯
- 回发数据验证后形式员额。
的问题
当形式得到回发的另一个呈现为 无效.
有人用这种模式和解决它吗? 我们应该以某种方式知道 form
执行回发和只有一个应该验证其后的数据。其他人应当忽略或验证执行规则 HttpVerb.Get
行动处理。
解决方案
有一个隐藏的场的形式以表明哪一个。或者,有一个前缀的传递给部分和所附的每个元素的形式。
关于前缀。第一种方法是有两个属性,呼吁Html。RenderPartial("部分",模型。数据1/2中。WithPrefix("数据1")).
public class FormModel
{
public string Prefix { get; set; }
}
public class FormData
{
public FormModel Data1 { get; set; }
public FormModel Data2 { get; set; }
}
public ActionResult HandlePost(FormData data)
{
if (data.Data1 != null) {} else {}
}
第二种方式是相同的,但使用两个行动的参数。
public ActionResult HandlePost(FormModel data1, FormModel data2)
{
if (data1 != null) {} else {}
}
在局部视图,你做的
<%= Html.TextBox(Model.Prefix + ".FormModelField", Model.FormModelField) %>
那是,你设置一场名前缀通过的模式。
当然你可能会发生变化,这在细节。
不隶属于 StackOverflow