1

我有两个模型类

public partial class EndUser
{
    public EndUser()
    {
        this.Mobiles = new List<Mobile>();
    }

       public virtual long Id { get; set; }
       public virtual string FullName { get; set; }

       [DataType(DataType.Password)]
       public virtual string UserPassword { get; set; }
       public virtual string Email { get; set; }
       public virtual IList<Mobile> Mobiles { get; set; }

    public partial class Mobile
    {
       public virtual long Id { get; set; }
       public virtual string Number { get; set; }
       public virtual EndUser EndUser { get; set; }
    }

我的控制器

    public ActionResult CreateClient()
    {
        return View("CreateClient");
    }

脚手架模板创建我的视图

创建客户端

@using (Html.BeginForm())
{
@Html.ValidationSummary(true)

<fieldset>
    <legend>EndUser</legend>

    <div class="editor-label">
        @Html.LabelFor(model => model.FullName)
    </div>
    <div class="editor-field">
        @Html.EditorFor(model => model.FullName)
        @Html.ValidationMessageFor(model => model.FullName)
        </div>
        <div class="editor-label">
            @Html.LabelFor(model => model.UserPassword)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.UserPassword)
            @Html.ValidationMessageFor(model => model.UserPassword)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Email)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Email)
            @Html.ValidationMessageFor(model => model.Email)
        </div>

        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}

但我想从这个视图添加我的客户端手机。如何创建乘法(未知)文本字段来添加手机号码?如果客户有多个手机号码,他可以通过单击“添加更多号码”按钮添加更多文本框。我无法为手机号码字段创建文本框。

请帮帮我。我是 MVC 的新手。

4

2 回答 2

1

没你想的那么简单……

检查以获取快速信息。检查以获取完整的操作方法

于 2013-08-22T07:50:53.693 回答
0

您可以通过几个步骤恢复它。

  1. 创建一个视图(即)“DynamicMobileForm”,您将在其中拥有一个 foreach Model.Mobiles,它应该为每个项目创建一个文本框。
  2. 在控制器中,创建一个 Get 方法来仅检索此部分 DynamicMobileForm 视图(您可以使用相同的模型,至少应该包含您加载的 Mobiles 属性)
  3. 在您的 ABM 表单中,删除任何有关移动设备的 html,然后粘贴: @{Html.RenderPartial("DynamicMobileForm", Model);}这将仅呈现此部分。
  4. 现在您只需要一种动态增加编辑器数量的方法,这很容易,创建一个按钮,并使用 jquery 使用 POST 方法执行对控制器的调用,例如 DynamicMobileFormAddRow... 在此方法中,您只需添加() 在您的 Model.Mobiles 列表中创建一个新实例,并返回与您的 GetMethod 相同的模型。

当页面加载时,将仅呈现您的部分部分,添加一个新的文本框,当您提交它时,将自动将其发布到您的 Mobiles Array 中。

希望能帮助到你。

于 2017-04-02T23:20:37.490 回答