扭曲的是,我在这个主题上发现的所有答案似乎都不起作用。我尝试了在这个问题的答案中找到的所有格式,并在我自己做了一些绝望的尝试,但没有一个有任何影响。这几乎就像剃刀不存在一样,但是同一个cshtml文件中的其他剃刀合成器没有遇到麻烦。 在大多数情况下,div在循环中声明,其名称应附加i。这是我尝试过的一些事情,而不是我尝试过的顺序。顺序可以通过合成器的降低的理智来推断:
<div id="accord@(i)">
<div id="@("accord" + i)>
<div id="@{@("accord" + i)}">
使用:
string fName = "accord" + i; //fName is filled correctly, that much I could verify
我尝试了一些事情:
<div id=@fName>
<div id="@fName">
<div id="@(fName)">
<div id="@{fName}">
<div id=@(fName)>
<div id="@{@fName}">
<div id=@{@fName}>
我还尝试了两种方法的几种组合,例如
string fName = "accord";
<div id="@(fName + i)">
... ASO
所有这些尝试都没有产生任何结果...... div的id总是#Literaly_Whatever_Comes_after _ =
所以......任何人都可以猜测我做错了吗?
为了完成,你永远不知道可能涉及到什么,这就是整个循环。它没有任何实际逻辑,这是在我使概念起作用之后:
<div id="yearaccord">
@for (int i = 0; i < 4; ++i)
{
//add a nested months accordion for every year
<h3>i = @i</h3>
string fName = "accord" + i;
<div id="@{@fName}">
@for (int j = 0; j < 4; ++j)
{
//add an accordion displaying the blog titles for each month
<h3>j = @j</h3>
<div>
@for (int w = 0; w < 6; ++w)
{
//add blog titles
<h4>JabbadaJba @w</h4>
}
</div>
}
</div>
}
</div>
请注意,此循环中的所有其他razor synthax的行为方式与我预期的方式相同...只有当它被用作id时,事情才会变得难以理解。
答案 0 :(得分:0)
string fName = "accord" + i;
被解释为普通HTML。在@for
之后立即将其向上移动或将其包裹在@{ //.. }
@for (var i = 0; i < 10; i++) {
var fName = "accord" + i;
<h3>i = @i</h3>
<div id="@{@fName}">
//..
</div>
}
或
@for (int i = 0; i < 4; ++i)
{
//add a nested months accordion for every year
<h3>i = @i</h3>
@{
string fName = "accord" + i;
}
<div id="@fName">
//..
</div>
}
答案 1 :(得分:0)
好的,弄清楚了...... 问题是我只是非常相信它没有用,而它确实有效。结果并没有像预期的那样,但这并不能说服我这样做没有用。但是我总是在visual studio里面的调试器中检查div的id ...结果是visual studio没有显示div的实际名称,而是显示它被声明的未解释的代码。我在浏览器中检查元素时的ID最终是正确的。
只有我对这整个网络事物都很陌生,以前只使用C ++(非.NET),所以我还不知道所有事情的位置以及它们的行为方式。 ..我猜这是学习过程的一部分。
感谢您的回答。一旦我知道他们在哪里工作,他们都会工作。
@dawidr:你的专栏缺少一个结束括号,因此产生了错误。一旦我仔细观察它就注意到了它;)
答案 2 :(得分:0)
我有同样的问题,我找到了解决方案, 在我的情况下,不仅我想在我的单个页面中填充属性,而且还希望将一个确定的值传递给我的局部视图,以便我可以重新使用它。
警告:我的代码看起来很糟糕,我仍然找到了解决问题的方法。
@{ ViewData["suffix"] = "RF"; }
<div @{ViewData["myId"] = "foo" + ViewData["suffix"];}
id=@ViewData["myId"]></div>
现在,在我调用部分视图之前,我更新ViewData["suffix"]
以确保所有复制的部分视图都具有唯一ID。
调用partialView就是
<div id="partialView1">@{Html.RenderPartial("_partialView", ViewData);}</div>
我离开这段代码,万一有人需要它。干杯!
答案 3 :(得分:0)
string strDynamicId =“ fuFileUpload_” + @ item.FeildID;
<input type="file" accept=".pdf" name=@strDynamicId id=@strDynamicId />
这对我有用 你应该试试这个
答案 4 :(得分:0)
<div id="@($"text{i}")"></div>