2016-12-15 34 views
-1

我希望有条件地禁用此按钮,或将其设置为只读,以便用户只能看到显示在框或文本中的数据,但不能显示能够编辑任何,我已经尝试了很多步骤来解决这个问题,但似乎没有工作,如果你看看我的代码下面。Razor View,如何禁用@htmlEdittorFor或根据模型ID做好准备

任何人都可以咨询我或为此提出解决方案。 预先感谢您。

enter image description here

<div class="inline-block-side"> 
    @if (Model.Promotion.PromotionID == 209) 
    { 
     @Html.DisplayFor(model => model.Promotion.PromotionTitle) 
    } 
    else 
    { 
     <div class="editor-label"> 
      @Html.LabelFor(model => model.Promotion.PromotionTitle) 
     </div>    
     <div class="editor-field" title="The name of the Promotion" @((Model.Promotion.PromotionID == 209) ? "disabled" : "")> 
      @Html.EditorFor(model => model.Promotion.PromotionTitle) 
      @Html.ValidationMessageFor(model => model.Promotion.PromotionTitle) 
     </div>      
     <div class="editor-label"> 
      @Html.LabelFor(model => model.Promotion.ArtworkDate) 
     </div> 
     <div class="editor-field" title="The date the Artwork is to be recieved by"> 
      @Html.TextBoxFor(model => model.Promotion.ArtworkDate, "{0:dd/MMM/yyyy}", new { @id = "ArtworkDate", @class = "date" }) 
      @Html.ValidationMessageFor(model => model.Promotion.ArtworkDate) 
     </div> 
+0

什么按钮,你指的是?什么不工作?你期望发生什么以及实际发生了什么? (并删除无效的@((Model.Promotion.PromotionID == 209)?“disabled”:“”)'代码) –

+0

@StephenMuecke再次检查我的帖子我包括一个图像作为例子。即时通讯引用所有的HTML编辑和文本框,当用户打开页面文本框时已经生成了数据,并且允许用户编辑数据并进行更改。现在我想要的是当proomotion标题等于209我不希望用户编辑文本中的数据我只想用户只看到数据但不能编辑数据。这对你现在有意义吗? – cedPound

+0

这就是'if'块中的代码 - 至少对于那个属性 - 只需为每个属性添加DisplayNameFor()和DisplayFor()。 –

回答

0

您可以使用@ Html.DisplayFor为您解决问题,或者您可以将用户的jQuery启用,禁用属性使textboxe readOnly的

+0

我通过编写一些jquery函数解决了我的问题,谢谢 – cedPound