0

我需要在模型中填充的視圖(RAZOR)上的只讀和可更新字段。 例如:視圖上的只讀和可更新字段(RAZOR),從模型中填充

public class Doc 
{ 
    [UIHint("Readonly")] 
    public int? TotalGoodsNumber { get; set; } 
    #.... 
} 

模板Readonly.cshtml:

<span>@Model</span> 

它工作正常。直到我想通過jQuery在客戶端更新這個字段。 量程沒有ID!

是否有可能通過模型​​字段名稱在模板中生成id?

當然,我可以用div來包裝這個span,我用手工製作。不自動。 但是我有很多隻讀字段的......這不是很好的解決方案......

或者,我可以隱藏屬性模板添加:

@Html.HiddenFor(m => m) 

現在我已經這樣生成的html:

<div class="editor-label"> 
     <label for="TotalGoodsNumber">Всего наименований товаров</label> 
    </div> 
    <div class="editor-field">    
    <span>8</span> 

    <input data-val="true" data-val-number="Значение должно быть числовым." data-val-required="Обязательное поле." id="TotalGoodsNumber" name="TotalGoodsNumber" type="hidden" value="8" /> 
      <span class="field-validation-valid" data-valmsg-for="TotalGoodsNumber" data-valmsg-replace="true"></span> 
    </div> 

並且可以嘗試選擇必要的跨度來通過隱藏字段的id來更新文本。因爲此跨度位於id =「TotalGoodsNumber」字段之前。 我認爲這是可以寫的jQuery能夠更新跨度文字...

但這種方法看起來有點複雜......

感謝您的建議!

回答

0

這裏是做什麼你問一個方法:

1)確保你的隱藏字段有一個可預見的ID(這將默認爲屬性的名稱,但我喜歡顯式地設置)

@Html.HiddenFor(m => m, new { @id = "TotalGoodsNumber" }); 

2)給你spanid以及便於選擇:

<span id="TotalGoodsNumberDisplay">@Model</span> 

3)使用jQuery更改值:

$('#TotalGoodsNumber').val('foobar'); 
$('#TotalGoodsNumberDisplay').html('foobar');