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');