0

我有一个部分视图,里面有一个表单,我使用 Kendo Tabstrip 将其拆分为地址类型的下拉列表(数据库中的现有地址)和一个自由文本地址输入字段。

下拉列表位于第一个选项卡上,文本位于第二个选项卡上。

当我提交表单时,当我在文本输入选项卡上时,我看到选定的下拉列表被发送到控制器。如何确保从表单提交的当前表中发送数据?

这是视图


@{
   Layout = null;
}

@using (Html.BeginForm("CheckDistance", "Home", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
   @Html.AntiForgeryToken()
   <hr />
   @Html.ValidationSummary("", new { @class = "text-danger" })



   @(Html.Kendo().TabStrip()
     .Name("tabstrip")
     .Items(tabstrip =>
     {
       tabstrip.Add().Text("Tab 0")
           .Selected(true)
           .Content(tab => Html.Kendo().DropDownListFor(m => m.DeliveryAddress)
           .DataValueField("DeliveryAddress")
           .DataTextField("Name")
           .BindTo((System.Collections.IEnumerable)ViewData["PickupPoints"])
           .AutoWidth(true)
       );
    
       tabstrip.Add().Text("Tab 1")
           .Content(@<text>
            <div class="form-group">
           <div class="col-md-12">
               @Html.Kendo().TextBoxFor(m => m.DeliveryAddress).Placeholder("Adresse").Name("DeliveryAddressText")
           </div>
       </div>
           </text>);
     })
)




   <div class="form-group">
       <div class="col-md-offset-2 col-md-10">
           <input type="submit" class="btn btn-default" value="Continue" />
       </div>
   </div>
}
4

2 回答 2

3

这两个小部件(即使通过标签条分开)仍保留在同一个表单元素中。表单发送所有具有 name 属性的输入 - 在这种情况下,DropDownList 和 TextBox 的值。

一种解决方法是为标签条的每个标签制作一个不同的表单元素。

另一种选择是处理表单的提交事件并重组将要发送的参数。

于 2021-09-21T14:13:47.043 回答
0

我解决此问题的方法是将视图模型中的值分开,以便为每个值设置不同的字段,然后选择控制器中不为空的字段。

于 2021-09-22T09:11:25.710 回答