【发布时间】:2020-10-06 23:21:54
【问题描述】:
产品模型类
public class Product
{
public Guid ProductId { get; set; }
public string Name { get; set; }
}
家庭控制器:
public class HomeController : Controller
{
[HttpGet]
public IActionResult EditProduct()
{
Product product = new Product()
{
ProductId = Guid.Empty,
Name = "Abc"
};
return View(product);
}
[HttpPost]
public IActionResult EditProduct(Product product)
{
Product productCopy = new Product()
{
ProductId = Guid.NewGuid(),
Name = product.Name + "d"
};
return View("EditProductCopy", productCopy);
}
}
编辑产品视图
注意:从产品模型类自动生成, EditProductCopy 类似,只是标题不同
@model WebApplicationTest.Models.Product
@{
ViewData["Title"] = "EditProductCopy";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h1>EditProductCopy</h1>
<h4>Product</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="EditProduct">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="ProductId" class="control-label"></label>
<input asp-for="ProductId" class="form-control" />
<span asp-validation-for="ProductId" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Name" class="control-label"></label>
<input asp-for="Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Save" class="btn btn-primary" />
</div>
</form>
</div>
</div>
<div>
<a asp-action="Index">Back to List</a>
</div>
我称之为“EditProduct”视图。我没有更改任何内容,然后单击“保存”按钮。呈现“EditProductCopy”视图,我希望看到新的 ProductId 和“Abcd”作为产品名称。但是我看到最后发布的数据(ProductId 是空的 guid 并且 Name 是“abc”)这个问题的原因是什么?
项目文件可以从这个链接下载: Project Files
【问题讨论】:
标签: c# asp.net-core model-view-controller