![](/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.