基本上我有一些看起来像这样的东西:
public class Inventory
{
public int ID { get; set; }
public Trade Have1 { get; set; }
public Trade Have2 { get; set; }
public Trade Have3 { get; set; }
}
我希望能够使用Trade对象的ID创建和保存Inventory对象,而不必拉动每个对象的实际Trade对象,因为这似乎效率很低。
我希望能够做到这样的事情:
@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" />
}
这样我就可以输入商业ID的3个整数然后将它们作为键保存这些整数,而不是必须从数据库中提取每个Trade,将它放入Inventory对象,然后保存它。像这样:
[HttpPost]
public ActionResult Create(Inventory inventory)
{
if (ModelState.IsValid)
{
db.Pokemon.Add(inventory);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(inventory);
}
也许我正在以错误的方式看待它?或者有办法做到这一点?非常感谢您的帮助!
答案 0 :(得分:0)
我和Alezis一样,不能真正理解你想要达到的目标&#39;键入&#39;并使用隐藏的字段。
如何使用: -
<input type="text" name="haveId1" />
<input type="text" name="haveId2" />
<input type="text" name="haveId3" />
而不是hiddens,取回ID并将它们设置在一个新对象上进行保存?
[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();
}