从 MVC5 C# 中的 ViewBag 列表设置 TextBox 值
Set TextBox value from ViewBag list in MVC5 C#
如何从包含列表的 ViewBag 中设置 MVC5 中的 TextBox 值?如您所见,我的列表在 Viewbag.photos 中,我想要 [=18= 的每个值]photo.id 在我的文本框中,然后将其传递给控制器
@foreach (var photo in ViewBag.photos)
{
@if (@photo.comment != null)
{
<h6>@photo.comment</h6>
}
else
{
<h6> - </h6>
}
@Html.TextBox("photoID", @photo.id)
}
尝试这样做时出现错误:
Error CS1973 'HtmlHelper>' has no applicable method
named 'TextBox' but appears to have an extension method by that name.
Extension methods cannot be dinamically dispached.
也许还有其他解决方法?
这是因为 ViewBag.photos
是一个 dynamic
对象。编译器无法知道它的类型,因此您必须手动将其转换为原始类型。
例如:
@Html.TextBox("photoID", (int)photo.id)
作为旁注(我不确定这是否会阻止您的代码工作,但无论如何这是一个很好的做法),您也有太多 @
s:引用 Visual Studio, once inside code, you do not need to prefix constructs like "if" with "@"
.所以您的最终代码将如下所示:
@foreach (var photo in ViewBag.photos)
{
if (photo.comment != null)
{
<h6>@photo.comment</h6>
}
else
{
<h6> - </h6>
}
@Html.TextBox("photoID", (int)photo.id)
}
您还应该考虑使用 ViewModel 而不是 ViewBag
在控制器和视图之间传递数据。
如何从包含列表的 ViewBag 中设置 MVC5 中的 TextBox 值?如您所见,我的列表在 Viewbag.photos 中,我想要 [=18= 的每个值]photo.id 在我的文本框中,然后将其传递给控制器
@foreach (var photo in ViewBag.photos)
{
@if (@photo.comment != null)
{
<h6>@photo.comment</h6>
}
else
{
<h6> - </h6>
}
@Html.TextBox("photoID", @photo.id)
}
尝试这样做时出现错误:
Error CS1973 'HtmlHelper>' has no applicable method named 'TextBox' but appears to have an extension method by that name. Extension methods cannot be dinamically dispached.
也许还有其他解决方法?
这是因为 ViewBag.photos
是一个 dynamic
对象。编译器无法知道它的类型,因此您必须手动将其转换为原始类型。
例如:
@Html.TextBox("photoID", (int)photo.id)
作为旁注(我不确定这是否会阻止您的代码工作,但无论如何这是一个很好的做法),您也有太多 @
s:引用 Visual Studio, once inside code, you do not need to prefix constructs like "if" with "@"
.所以您的最终代码将如下所示:
@foreach (var photo in ViewBag.photos)
{
if (photo.comment != null)
{
<h6>@photo.comment</h6>
}
else
{
<h6> - </h6>
}
@Html.TextBox("photoID", (int)photo.id)
}
您还应该考虑使用 ViewModel 而不是 ViewBag
在控制器和视图之间传递数据。