C# 将int保存为对象的键
基本上我有这样的东西:C# 将int保存为对象的键,c#,asp.net-mvc,key,C#,Asp.net Mvc,Key,基本上我有这样的东西: public class Inventory { public int ID { get; set; } public Trade Have1 { get; set; } public Trade Have2 { get; set; } public Trade Have3 { get; set; } } [HttpPost] public ActionResult Create(Inventory inventory) { if (ModelState
public class Inventory
{
public int ID { get; set; }
public Trade Have1 { get; set; }
public Trade Have2 { get; set; }
public Trade Have3 { get; set; }
}
[HttpPost]
public ActionResult Create(Inventory inventory)
{
if (ModelState.IsValid)
{
db.Pokemon.Add(inventory);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(inventory);
}
我希望能够使用交易对象的ID创建和保存库存对象,而不必提取每个交易对象的实际交易对象,因为这看起来效率很低
我希望能够做到以下几点:
@using (Html.BeginForm("AddToFT", "Home", FormMethod.Post, new { @id = "realsubmit", role = "form" }))
{
@Html.ValidationSummary(true)
@Html.HiddenFor(model => model.Have1)
@Html.HiddenFor(model => model.Have2)
@Html.HiddenFor(model => model.Have3)
<input type="submit" value="Create" />
}
也许我看错了?还是有办法做到这一点?非常感谢你的帮助 我和Alezis一样,无法真正理解你在说“类型”和使用隐藏字段时想要达到的目的 如何使用:-
<input type="text" name="haveId1" />
<input type="text" name="haveId2" />
<input type="text" name="haveId3" />
对不起,你能用别的话解释一下你的问题吗?我不知道你想要实现什么?你会犯什么错误?这与他已经在尝试插入数据的方式没有什么不同,事实上,这比他如何做更糟糕。另外,
ModelState.IsValid
在代码中是多余的,因为没有传递要验证的模型,这是库存
的目的,更不用说它是更多代码。只要这些隐藏字段
填充了数据,那么库存
参数将保存它们所需的信息。
[HttpPost]
public ActionResult Create(int haveId1, int haveId2, int haveId2)
{
if (ModelState.IsValid)
{
Inventory inventory = new Inventory()
{
Have1 = haveId1,
Have2 = haveId2,
Have3 = haveId3
};
db.Pokemon.Add(inventory);
db.SaveChanges();
return RedirectToAction("Index");
}
return View();
}