因为我们都知道 RenderAction() 是两部分:

  • Asp.net 软1期货或
  • Asp.net 视2Beta2

并允许我们呈现的行动的结果内另一种观点或局部视图。

描述

  1. 你有一个与多个部分的风景显示使用 RenderAction() 帮手。
  2. 至少两个部分呈现的景致 <form> 可能是通过使用 Html.BeginForm() 就回到原始图。
  3. 回发 是不是 执行通过呼吁阿贾克斯
  4. 回发数据验证后形式员额。

的问题

当形式得到回发的另一个呈现为 无效.

有人用这种模式和解决它吗? 我们应该以某种方式知道 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) %>

那是,你设置一场名前缀通过的模式。

当然你可能会发生变化,这在细节。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top