目标
将属性及其值“注入”到对象中。
问题
我有以下由 Entity Framework 5 创建的对象:
public partial class getSpecificProductToShoppingList_Result
{
public string productName { get; set; }
public string measureAbbreviation { get; set; }
}
我正在使用 Session 创建一个购物清单,当用户在他的清单中添加一些东西时,应用程序会调用一个过程来获取有关该产品的信息,这些信息分别填充上述属性。
关键是:用户可以添加他想要的产品数量——这不是数据库的责任。
要添加产品,用户必须访问MyApp.com/Products/Add?productId=1&quantity=5
. 我可以使用以下方法检索有关产品的所有信息:
ShoppingListController.cs:
public ActionResult Add(Nullable<int> productId, int quantity)
{
if (Session["ShoppingList"] == null)
{
Session["ShoppingList"] = new
List<getSpecificProductToShoppingList_Result>();
}
getSpecificProductToShoppingList_Result product =
Products.BuildItemToShoppingList(productId);
((List<getSpecificProductToShoppingList_Result>)Session["ShoppingList"])
.Add(product);
return View("Index");
}
然后,视图:
@foreach (var item in
(List<MyApp.Models.Data.getSpecificProductToShoppingList_Result>)
Session["ShoppingList"])
{
<p>@item.productName | @item.measureAbbreviation</p>
}
我的问题很简单:我怎样才能添加类似的东西@item.quantity
?
我在想什么
我在想这样的事情(注意产品变量声明后的行):
public ActionResult Add(Nullable<int> productId, int quantity)
{
if (Session["ShoppingList"] == null)
{
Session["ShoppingList"] =
new List<getSpecificProductToShoppingList_Result>();
}
getSpecificProductToShoppingList_Result product =
Products.BuildItemToShoppingList(productId);
((List<getSpecificProductToShoppingList_Result>)Session["ShoppingList"])
.Insert(productId,
new KeyValuePair<string, int>("quantity", quantity))
.Add(product);
return View("Index");
}
但是——当然——没有成功。语法是错误的,但只是为了说明。
细节
我正在使用 C#.Net + MVC 4 + Razor 引擎