在 MVC 中的 WebGrid 内的 @Html.DropDownList 中绑定 ViewBag
Bind a ViewBag in an @Html.DropDownList inside of a WebGrid in 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 以显示默认字符串,这就是问题所在,@HTML.DropDownList 内的 @(at 符号)不起作用,它不是黄色,就像关闭一样,因为行首的 @ 就像我在开头发布的那样。
知道如何在不创建新的 SelectList 的情况下解决这个问题吗(blah blah),只需将 @item.Name 转换为 String?
经过 6 天的反复尝试找到解决方案!!!!!!!!!!!!
@grid.GetHtml(
columns: grid.Columns(
grid.Column("ProductID"),
grid.Column("Name", null, format:
@<span>
grid.Column("Name", null, format:
@<span>
@{
string name = (@item.Name).ToString();
@Html.DropDownList("Products", null, name , new { style = "color:red;" });
}
</span>),
</span>),
grid.Column("ListPrice", "Price")
)
)
我必须用@item.Name 创建一个新字符串,仅此而已!!!呵呵,我看到很多 post 人们在其中创建 ViewBag,然后在 DropDOwnList 中创建一个新列表,这没有意义......这就是答案!!!
自上周以来我阅读了很多帖子,但没有任何关于我的问题。
我有这个简单的控制器:
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 以显示默认字符串,这就是问题所在,@HTML.DropDownList 内的 @(at 符号)不起作用,它不是黄色,就像关闭一样,因为行首的 @ 就像我在开头发布的那样。
知道如何在不创建新的 SelectList 的情况下解决这个问题吗(blah blah),只需将 @item.Name 转换为 String?
经过 6 天的反复尝试找到解决方案!!!!!!!!!!!!
@grid.GetHtml(
columns: grid.Columns(
grid.Column("ProductID"),
grid.Column("Name", null, format:
@<span>
grid.Column("Name", null, format:
@<span>
@{
string name = (@item.Name).ToString();
@Html.DropDownList("Products", null, name , new { style = "color:red;" });
}
</span>),
</span>),
grid.Column("ListPrice", "Price")
)
)
我必须用@item.Name 创建一个新字符串,仅此而已!!!呵呵,我看到很多 post 人们在其中创建 ViewBag,然后在 DropDOwnList 中创建一个新列表,这没有意义......这就是答案!!!