【问题标题】:ASP.NET Core 2.0 Razor Pages web app separate Complex BindProperty FormASP.NET Core 2.0 Razor Pages Web 应用单独的复杂 BindProperty 表单
【发布时间】:2018-10-31 18:49:14
【问题描述】:

我是 ASP.NET Core 2.0 Razor Pages Web 应用程序框架的新手。问题如下:我需要为复杂的 [BindProperty] 类创建 html 表单,并在部分视图或编辑器(如 MVC 中)中分离它的复杂字段:

public class BasicInformation
{
    // complex filed
    public Name Name { get; set; }

    public string Email { get; set; }

    // collection of objects
    public IEnumerable<Address> Addresses { get; set; }

    //complex field
    public PhoneNumber PhoneNumber { get; set; }

}

我想实现这样的目标:

  <h4>BasicInformation</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form method="post">
            <div asp-validation-summary="ModelOnly" class="text-danger"></div>
            <input type="hidden" asp-for="Resume" />

                @Html.EditorFor(m => m.BasicInformation.Name)
            <div class="form-group">
                <label asp-for="BasicInformation.Email" class="control-label"></label>
                <input asp-for="BasicInformation.Email" class="form-control" />
                <span asp-validation-for="BasicInformation.Email" class="text-danger"></span>
            </div>
            <div class="form-group">
                @Html.EditorFor(m => m.BasicInformation.PhoneNumber)
            </div>

           ...
            <div class="form-group">
                <input type="submit" value="Save" class="btn btn-default" />
            </div>
        </form>
    </div>
</div>`

还有我的页面模型:

 public class BasicInformationFormModel : PageModel
    {
        [BindProperty]
        public BasicInformation BasicInformation { get; set; }

        public IActionResult OnGet()
        {
            return Page();
        }

        public IActionResult OnPost(BasicInformation basicInformation)
        {
            // all data from separate views / editors need to be present in basicInformation
            return Page();
        }
    }

我怎样才能做到这一点?

【问题讨论】:

标签: c# asp.net razor-pages


【解决方案1】:

您需要创建一个模型类来扭曲BasicInformation 模型,

public class ProfileViewModel{
       public BasicInformation BasicInformation {get;set;}
}

而不是使用模型 ProfileViewModel 将视图设为强类型

@model ProfileViewModel

【讨论】:

  • 在这里我使用 Pages。重点是分离。我需要另一个视图的名称、电话号码,但是当我执行 Post 方法时,接收包含来自其他视图的所有信息的 BasicInformation 对象
猜你喜欢
  • 2018-03-30
  • 2018-03-12
  • 1970-01-01
  • 2018-10-29
  • 2019-04-05
  • 2018-10-16
  • 2018-07-16
  • 2018-05-09
  • 1970-01-01
相关资源
最近更新 更多