![](/img/trans.png)
[英]How to set value to @Html.TextBox() in ASP.NET C# using @Viewbag in MVC3
[英]Set TextBox value from ViewBag list in MVC5 C#
如何从包含列表的ViewBag中在MVC5中设置TextBox值? 如您所见,我的列表在Viewbag.photos中 ,我想在我的TextBox中包含photo.id的每个值,然后将其传递给控制器
@foreach (var photo in ViewBag.photos)
{
@if (@photo.comment != null)
{
<h6>@photo.comment</h6>
}
else
{
<h6> - </h6>
}
@Html.TextBox("photoID", @photo.id)
}
尝试这样做,我得到一个错误:
错误CS1973“ HtmlHelper>”没有名为“ TextBox”的适用方法,但似乎具有该名称的扩展方法。 扩展方法无法进行动态分配。
也许还有另一个解决方法?
这是因为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)
}
您还应该考虑使用ViewModels而不是ViewBag
在控制器和视图之间传递数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.