我有一个List<>对象,对于每个对象,我在表中创建一行:
@for(int cnt=0; cnt< Model.Transaction.TransactionLines.Count; cnt++)
{
<div class="form-group">
<label for="@("cmbCategory" + cnt.ToString())" class="col-lg-1 control-label">Category:</label>
<div class="col-lg-3">
@Html.DropDownListFor(x => x.Transaction.TransactionLines[cnt].CategoryId,
new SelectList(Model.TransactionReferences.Categories, "Value", "Text", Model.Transaction.TransactionLines[cnt].CategoryId), "Select one",
new { @onchange = "populateSubCategory(0)", @class = "cmbCategory0 form-control" })
</div>
...
正如您所看到的,在代码中,我在标记中硬编码了“0”。我需要在“for”循环中反映Cntr变量的值。
即。 @onchange = "populateSubCategory(0)"
如何用@cntr替换0?
答案 0 :(得分:2)
您可以简单地使用字符串连接:
new { @onchange = "populateSubCategory(" + cnt + ")", @class = "cmbCategory0 form-control" })
或使用string.Format()
:
new { @onchange = string.Format("populateSubCategory({0})", cnt), @class = "cmbCategory0 form-control" })
答案 1 :(得分:0)
我不是MVC的人,但为什么你不能连接字符串,
e.g。
new {“onchange = \”populateSubCategory(“,cnt.ToString(),”\“,class = \”cmbCategory“,cnt.ToString(),”form-control \“”})