0
我讀了很多帖子,因爲上週但並沒有什麼關於我的問題。綁定在@ Html.DropDownList一個ViewBag一個的WebGrid內的MVC
我有這個簡單的控制器:
public class HomeController : Controller
{
private AdventureWorks2014Entities db = new AdventureWorks2014Entities();
public ActionResult Index()
{
var model = db.Products.ToList();
ViewBag.Products = new SelectList(db.Products, "ProductID", "Name");
return View(model);
}
}
而這個簡單的觀點:
@model IEnumerable<ADWork.Client.Models.Product>
@{
var grid = new WebGrid(Model);
}
@grid.GetHtml(
columns: grid.Columns(
grid.Column("ProductID"),
grid.Column("Name", null, format:@<span>@Html.DropDownList("Products", @item.Name, new { style = "color:red;" }) </span>),
grid.Column("ListPrice", "Price")
)
)
現在的問題是DropDownList的。我可以使它很容易這樣的:
@Html.DropDownList("Products", null , new { style = "color:red;" })
但我想添加@ item.Name顯示默認的字符串,而這就是問題所在,它不工作的@(at符號)的內@ HTML.DropDownList,它不是黃色的,它就像關閉,因爲像在我開始發佈的行開頭的@。
任何想法如何解決這個問題,而無需創建一個新的SelectList(等等等等),就在@ item.Name轉換爲字符串?
你不需要在,因爲你在一個代碼塊是已。 – 2015-02-01 11:59:14
@ErikFunkenbusch,我很久以前就試過了,它不起作用:編譯器錯誤消息:CS1973:'System.Web.Mvc.HtmlHelper'沒有可用的方法名爲'DropDownList',但似乎有一個名稱爲擴展方法。擴展方法不能動態分派。考慮轉換動態參數或調用擴展方法而不使用擴展方法語法。 就像我說的,我試過很多東西,但它不工作 –
user3561028
2015-02-01 15:17:12
而且你去那裏。你不能在這樣的幫手中使用動態。在它前面放一個@不會改變任何東西。您需要先將值複製到本地變量,然後在助手中使用該局部變量。 – 2015-02-01 22:13:13