2014-06-13 94 views
0

我似乎无法得到为什么我的模型类中隐藏的数据注释不起作用。
我的模型:隐藏的数据注释不会隐藏EditorFor()中的字段?

using ... 
using System.Web.Mvc; 

namespace Store.Domain.Entities{ 
    public class MyModel { 
     [HiddenInput(DisplayValue = false)] 
     public int ModelID { get; set; } 

     [Required] 
     public string ModelName { get; set; } 
    } 
} 

在我看来,我所说的模式是这样的:

@model Store.Domain.Entities.MyModel 
... 
@using (Html.BeginForm("Method", "Controller")){ 
    <div class="form-group"> 
     @Html.EditorFor(Model => Model, new { htmlAttributes = new { @class = "form-control" }, }) 
    </div> 
} 
... 

的web.config:

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
    <add namespace="System.Web.Mvc" /> 
    <add namespace="System.Web.Mvc.Ajax" /> 
    <add namespace="System.Web.Mvc.Html" /> 
    <add namespace="System.Web.Routing" /> 
    <add namespace="Store.WebUI" /> 
    <add namespace="Store.WebUI.HtmlHelpers" /> 
    </namespaces> 
    </pages> 
</system.web.webPages.razor> 

基本功能 - 为所有,但它会显示领域属性 - 也就是ModelID,它获得HiddenInput?什么可能导致此?

+0

我试图不包含该参数 - 它仍然不工作? –

回答

2

Not able to duplicate it (DotNetFiddle Example)。生成源:

<form action="/Controller/Method" method="post">  
    <div class="form-group"> 
    <input data-val="true" 
      data-val-number="The field ModelID must be a number." 
      data-val-required="The ModelID field is required." 
      id="ModelID" 
      name="ModelID" 
      type="hidden" 
      value="0" /> 
    <div class="editor-label"> 
     <label for="ModelName">ModelName</label> 
    </div> 
    <div class="editor-field"> 
     <input class="text-box single-line" 
      data-val="true" 
      data-val-required="The ModelName field is required." 
      id="ModelName" 
      name="ModelName" 
      type="text" 
      value="" /> 
     <span class="field-validation-valid" 
      data-valmsg-for="ModelName" 
      data-valmsg-replace="true"></span> 
    </div> 
    </div> 
</form> 

ModelID是一个隐藏输入。

HiddenInputAttribute处于System.Web.Mvc命名空间和应该在web.config文件中的目录views类似如下:(MVC 5的例子)

<system.web.webPages.razor> 
    <host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    <pages pageBaseType="System.Web.Mvc.WebViewPage"> 
    <namespaces> 
     <add namespace="System.Web.Mvc" /> 
     <add namespace="System.Web.Mvc.Ajax" /> 
     <add namespace="System.Web.Mvc.Html" /> 
     <add namespace="System.Web.Optimization"/> 
     <add namespace="System.Web.Routing" /> 
    </namespaces> 
    </pages> 
</system.web.webPages.razor> 
+0

嗯很奇怪?它可能是一个程序集引用? –

+0

也许..我会更新我的答案。 –

+0

嗯..似乎是正确的,ive上传我的系统设置在我的问题 –