Asp.net mvc 在MVC中,数据注释在域类中不起作用

Asp.net mvc 在MVC中,数据注释在域类中不起作用,asp.net-mvc,data-annotations,Asp.net Mvc,Data Annotations,我正在编写一个ASP.NETMVC应用程序。有两种解决方案,sportstore.Domain和sportstore.WebUI。我的产品类别如下所述: namespace SportsStore.Domain.Entities { public class Product { [HiddenInput(DisplayValue = false)] public int ProductId {get;set;} public string ProductName {g

我正在编写一个ASP.NETMVC应用程序。有两种解决方案,sportstore.Domain和sportstore.WebUI。我的产品类别如下所述:

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被描述为Multilinetext。我想编辑任何产品的内容,因此详细信息如下:

相关控制器的编辑功能内容:

    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")
  }
@model sportstore.Domain.PRODUCT
@{
ViewBag.Title=“Admin:Edit”+@Model.PRODUCT\u NAME;
Layout=“~/Views/Shared/_AdminLayout.cshtml”;
}
编辑@Model.PRODUCT\u名称
@使用(Html.BeginForm())
{
@Html.EditorForModel()
@ActionLink(“取消并返回列表”、“索引”)
}

问题是每当我运行代码时,都会出现编辑页面,但是注释不起作用,总之,
ProductId
是可编辑的。重点是什么?提前谢谢。

我马上就看到了解决方案。这里的产品类是域的类。然而,我给出了直接来自实体框架的产品类。为了使代码运行,我将映射域中的产品类和实体框架中的产品类