数据注释在 MVC 的域 Class 中不起作用
Data Annotations do not work in Domain Class in MVC
我正在编写 ASP.NET MVC 应用程序。有两种解决方案,Sportsstore.Domain和Sportsstore.WebUI。我有一个 Product class 如下所述:
namespace SportsStore.Domain.Entities
{
public class Product
{
[HiddenInput(DisplayValue = false)]
public int ProductId {get;set;}
public string ProductName {get;set;}
[DataType(DataType.MultilineText)]
public string ProductDescription {get;set;}
public decimal ProductPrice {get;set;}
public string ProductCategory { get; set; }
}
}
如您所见,ProductId 显示为隐藏,ProductDescription 显示为多行文本。我想编辑任何产品的内容,详情如下:
相关控制器编辑功能内容:
public ViewResult Edit(int? PRODUCT_ID)
{
try
{
//Connecting to the Entity Framework
using (ProductContext pr = new ProductContext())
{
PRODUCT product = pr.ProductsList.FirstOrDefault(p => p.PRODUCT_ID == PRODUCT_ID);
if (product != null)
{
return View(product);
}
else
{
throw new Exception("Product Id boş geliyor.");
}
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
return View();
}
}
这是 Edit.cshtml:
@model SportsStore.Domain.PRODUCT
@{
ViewBag.Title = "Admin: Edit " + @Model.PRODUCT_NAME;
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
<h1>Edit @Model.PRODUCT_NAME</h1>
@using (Html.BeginForm())
{
@Html.EditorForModel()
<input type="submit" value="Save" />
@Html.ActionLink("Cancel and return to List", "Index")
}
问题是每当我运行代码,编辑页面出现,但是注释不起作用,总之,ProductId
是可编辑的。重点是什么?提前致谢。
我立即看到了解决方案。这里的 Product class 是域的 class。但是,我给出了直接来自Entity Framework的PRODUCTclass。为了使代码 运行,我将映射域中的 Product class 和 PRODUCT class 在 Entity Framework.
我正在编写 ASP.NET MVC 应用程序。有两种解决方案,Sportsstore.Domain和Sportsstore.WebUI。我有一个 Product class 如下所述:
namespace SportsStore.Domain.Entities
{
public class Product
{
[HiddenInput(DisplayValue = false)]
public int ProductId {get;set;}
public string ProductName {get;set;}
[DataType(DataType.MultilineText)]
public string ProductDescription {get;set;}
public decimal ProductPrice {get;set;}
public string ProductCategory { get; set; }
}
}
如您所见,ProductId 显示为隐藏,ProductDescription 显示为多行文本。我想编辑任何产品的内容,详情如下:
相关控制器编辑功能内容:
public ViewResult Edit(int? PRODUCT_ID)
{
try
{
//Connecting to the Entity Framework
using (ProductContext pr = new ProductContext())
{
PRODUCT product = pr.ProductsList.FirstOrDefault(p => p.PRODUCT_ID == PRODUCT_ID);
if (product != null)
{
return View(product);
}
else
{
throw new Exception("Product Id boş geliyor.");
}
}
}
catch (Exception ex)
{
Response.Write(ex.Message);
return View();
}
}
这是 Edit.cshtml:
@model SportsStore.Domain.PRODUCT
@{
ViewBag.Title = "Admin: Edit " + @Model.PRODUCT_NAME;
Layout = "~/Views/Shared/_AdminLayout.cshtml";
}
<h1>Edit @Model.PRODUCT_NAME</h1>
@using (Html.BeginForm())
{
@Html.EditorForModel()
<input type="submit" value="Save" />
@Html.ActionLink("Cancel and return to List", "Index")
}
问题是每当我运行代码,编辑页面出现,但是注释不起作用,总之,ProductId
是可编辑的。重点是什么?提前致谢。
我立即看到了解决方案。这里的 Product class 是域的 class。但是,我给出了直接来自Entity Framework的PRODUCTclass。为了使代码 运行,我将映射域中的 Product class 和 PRODUCT class 在 Entity Framework.