从 @Html.DisplayFor 和 @Html.HiddenFor 获取值
Getting a value from @Html.DisplayFor and @Html.HiddenFor
HTML
int i = 1;
foreach (var item in Model.MyDataset)
{
<td class="tdBorder">
@Html.DisplayFor(x => item.ID, new { id = "VisibleID" + @i })
@Html.HiddenFor(x => item.ID, new { id = "HiddenID" + @i })
</td>
i += 1;
}
jQuery
for (i = 1; i <= rowCount; i++) {
var myID_Visible = $.trim($("#VisibleID" + i).val());
var myID_Hidden = $.trim($("#HiddenID" + i).val());
}
我正在尝试学习一些MVC和jQuery。
有人会向我解释为什么打电话吗
var myID_Visible = $.trim($("#VisibleID" + i).val());
返回一个空字符串,但
var myID_Hidden = $.trim($("#HiddenID" + i).val());
返回我的 item.ID 值?
唯一的区别是第一个jQuery行引用@Html.DisplayFor(返回空字符串),而第二个jQuery行引用@Html.HiddenFor(返回实际值)。
为什么我无法从 @Html.DisplayFor 获取值?
因为@Html.DisplayFor()
不呈现控件,并且不能使用.val()
。而是使用
myID_Visible = $.trim($("#VisibleID" + i).text())
尽管这将取决于@Html.DisplayFor()
呈现的 HTML(您是否使用显示模板?您需要检查生成的 html。
默认情况下DisplayFor
将仅呈现属性的文本值。你需要做一些类似的事情
int i = 1;
@foreach (var item in Model.MyDataset)
{
<td class="tdBorder">
<span id="@i">
@Html.DisplayFor(x => item.ID)
</span>
@Html.HiddenFor(x => item.ID, new { id = "HiddenID" + @i })
</td>
i += 1;
}
并在脚本中
myID_Visible = $.trim($('#' + i).text());
某些输入有 .html() 而不是 .val() 尝试:
var myID_Visible = $.trim($("#VisibleID" + i).html());
编辑
另一件事,删除 i 前面的 @,你已经在 C# 代码中
@Html.DisplayFor(x => item.ID, new { id = "VisibleID" + i })
原因在这个和那个中解释。但是,对于您的情况,我更喜欢这样:
.HTML
int i = 1;
foreach (var item in Model.MyDataset)
{
<td class="tdBorder">
<p id="VisibleID@(i)">@Html.DisplayFor(x => item.ID)</p>
<p id="HiddenID@(i)">@Html.HiddenFor(x => item.ID)</p>
</td>
i += 1;
}
所以在脚本中我们可以称之为:
for (i = 1; i <= rowCount; i++) {
var myID_Visible = $("#VisibleID" + i).text();
var myID_Hidden = $("#HiddenID" + i).text();
}
希望这能帮助你,干杯!
@Html.DisplayFor(x => item.ID, new { id = "VisibleID" + @i })
Rendred HTML 看起来像:
<span id="VisibleID1">item id value here</span>
而
@Html.HiddenFor(x => item.ID, new { id = "HiddenID" + @i })
呈现的 HTML 看起来像
<input type="hidden" id="HiddenID1" value="item id value here">
因此,为了显示您应该使用的值,$("#VisibleID1).html()
如@Shadi
相关文章:
- 无法将数据从firebase获取到我的html页面
- Brightcove获取/显示HTML中的当前视频标题和描述
- 获取HTML属性中CSS声明的值
- 这是使用html快照和谷歌获取的预期结果吗?SEO/SPA
- Html获取Rgb中的颜色
- 使用 jQuery 从 HTML 获取 id,给出意想不到的结果
- html获取调用onsubmit的位置
- 使用 HTML 获取已提交表单之外的选中元素
- 如何从 HTML 获取输入以链接到 MyChecker 函数?它不起作用
- 我如何从javascript到PHP或HTML获取变量
- 在ajax响应中从html获取输入值
- HTML获取URL参数
- ng-bind-html获取html内容的第一个字母
- 从HTML获取标题
- 从Html获取信息
- 使用Javascript和HTML获取选定的选项,并根据值显示字符串
- 通过AJAX和PHP通过输入HTML获取和读取文件
- 如何使用javascript生成的html获取标签的ID
- 在页面刷新(php)上从html获取表单数据
- JS Regexp:从 html 获取内联 JavaScript