脚手架绑定到mvc 5中的复杂模型的控制器

时间:2017-10-01 08:44:58

标签: c# asp.net-mvc scaffolding

我有一个模型( A )由另外两个模型组成( B - UltrasoundDTO & C - BloodTestDTO )。 当我尝试通过 MVC Controller with views,使用 VS2017 中的Entity Framework 选项添加控制器时,它会创建一个带有相应视图的控制器,尽管它只绑定模型A的属性而不是 B &的属性 C 即可。有没有办法解决这个问题,还是我必须自己绑定其余部分?

[控制器创建选项] [1],

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Text;

public class CheckUpDTO
{
    public int Id { get; set; }
    public int DayOfPeriod { get; set; }

    [Required]
    public UltrasoundDTO MyUltrasoundDTO { get; set; }

    [Required]
    public BloodTestDTO MyBloodTestDTO { get; set; }

  }

控制器中的一种方法:

public async Task<IActionResult> Create([Bind("Id,DayOfPeriod")] CheckUpDTO checkUpDTO)
        {
            if (ModelState.IsValid)
            {
                _context.Add(checkUpDTO);
                await _context.SaveChangesAsync();
                return RedirectToAction("Index");
            }
            return View(checkUpDTO);
        }

与上述方法相对应的视图:

@model DTOs.CheckUpDTO

@{
    ViewData["Title"] = "Create";
}

<h2>Create</h2>

<form asp-action="Create">
    <div class="form-horizontal">
        <h4>CheckUpDTO</h4>
        <hr />
        <div asp-validation-summary="ModelOnly" class="text-danger"></div>
        <div class="form-group">
            <label asp-for="DayOfPeriod" class="col-md-2 control-label"></label>
            <div class="col-md-10">
                <input asp-for="DayOfPeriod" class="form-control" />
                <span asp-validation-for="DayOfPeriod" class="text-danger"></span>
            </div>
        </div>
        <div class="form-group">
            <div class="col-md-offset-2 col-md-10">
                <input type="submit" value="Create" class="btn btn-default" />
            </div>
        </div>
    </div>
</form>

<div>
    <a asp-action="Index">Back to List</a>
</div>

@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
}

0 个答案:

没有答案