【发布时间】:2019-02-05 00:46:57
【问题描述】:
我知道这是一个现有的问题,但我还没有看到一个可以回答我在 asp.net core 2.1 mvc 中的场景的问题。另外,我是这个领域的菜鸟,这是我在这里的第一个问题,提前抱歉。问题很简单(我猜):使用asp-net core 2.1和mvc,我如何为create方法创建一个剃须刀页面,我可以在客户端动态创建父子关系,接收所有数据服务器上的帖子?到目前为止我所拥有的(简单代码):
父模型:
public class BusinessCategory
{
public BusinessCategory()
{
SubBusinessCategories = new List<SubBusinessCategory>();
}
[Key]
public long ID { get; set; }
public string Code { get; set; }
[Required]
public string Name { get; set; }
public virtual ICollection<SubBusinessCategory> SubBusinessCategories { get; set; }
}
子模型:
public class SubBusinessCategory
{
[Key]
public long ID { get; set; }
public string Code { get; set; }
[Required]
public string Name { get; set; }
[Required]
public long BusinessCategoryID { get; set; }
[ForeignKey("BusinessCategoryID")]
public virtual BusinessCategory BusinessCategory { get; set; }
}
ViewModel(我认为这是错误的......但我试图得到一些东西):
public class BusinessCategoryViewModel
{
public BusinessCategory BusinessCategory { get; set; }
public List<SubBusinessCategory> SubBusinessCategories { get; set; }
}
父 GET 在控制器中创建操作:
[BindProperty]
public BusinessCategoryViewModel BusinessCategoryVM { get; set; }
public IActionResult Create()
{
return View(BusinessCategoryVM);
}
创建视图:
<form method="post" asp-action="Create">
<div class="p-4 border rounded">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group row">
<div class="col-2">
<label asp-for="BusinessCategory.Code" class="control-label"></label>
</div>
<div class="col-5">
<input asp-for="BusinessCategory.Code" class="form-control" />
</div>
<span asp-validation-for="BusinessCategory.Code" class="text-danger"></span>
</div>
//
// all other properties...
//
<br />
<h2 class="text-info">CHILDS</h2>
<input type="button" value="Add" class="btn btn-primary" onclick="addSubBusinessCategory()" />
<br />
<br />
<div id="subBusinessCategories" class="p-4 border rounded">
// HERE I WOULD LIKE TO ADD THE CHILDS
</div>
<br />
<br />
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
<a asp-action="Index" class="btn btn-success">Back to List</a>
</div>
</div>
</form>
我知道我遗漏了很多东西...我是否必须为孩子使用部分视图并将它们附加到 ajax 调用和 jquery 或其他东西?请问有没有人可以指导我正确的方式?
【问题讨论】:
-
我建议使用 @Html.RenderPartial("ViewName") 如果它在页面呈现的同时加载,否则我们必须使用 ajax 调用并呈现部分查看。
标签: c# razor asp.net-core