如何从索引视图传递 id 以创建另一个控制器的方法?
How to pass id from Index View to create method of another Controller?
我在 asp.net 中使用 mvc。我想要做的是:我有一个项目控制器的视图(索引)和一个订单控制器的创建方法。索引查看代码为:
查看
@model IEnumerable<MvcHotel.Models.Items>
@{
ViewBag.Title = "Index";
//var item = Model;
}
//other markup
<div class="row">
@foreach (var item in Model)
{
<div class="col-md-2">
<img class="img-responsive img-rounded" src="/Item/RetrieveImage/@item.Id" />
<div>
<p>@item.ItemName</p>
<p>Rs.<span>@item.Price</span>
<a href="?/order/create/@item.Id"><span class="pull-right">Order Now </span></a>
<p class="text-warning"><span>@item.Rating stars</span></p>
</div>
</div>
}
</div>
控制器
[HttpGet]
public ActionResult Create(int id)
{
db = new DBContext();
//var categories = new SelectList(new[] { "Rice","Karachi","Fast Food","Drinks", "Shakes" });
ViewBag.Categories = new SelectList(db.Categories, "CategoryID", "CategoryName");
return View();
}
[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(MvcHotel.Models.Order order)
{
//HttpPostedFileBase file = Request.Files["ImageData"];
//int i = UploadImageInDataBase(file, order);
if (ModelState.IsValid)
{
db = new DBContext();
db.Orders.Add(order);
db.SaveChanges();
return RedirectToAction("Index");
}
return Index();
}
现在我想传递项目ID,以便项目名称及其类别自动显示在订单创建(查看)的下拉列表中。请帮助我
创建一个模型class来为您的观点服务:
public class ItemModel
{
public int ItemId { get; set; }
public List<Category> Categories { get; set; }
public SelectedCategoryId { get; set; }
}
创建一个实例并将其填充到您的控制器中,然后将其传递给 Create(int id)
操作中的 View
方法:
return View(instanceHere);
然后在你的视图中使用它:
@model ItemModel
我在 asp.net 中使用 mvc。我想要做的是:我有一个项目控制器的视图(索引)和一个订单控制器的创建方法。索引查看代码为:
查看
@model IEnumerable<MvcHotel.Models.Items>
@{
ViewBag.Title = "Index";
//var item = Model;
}
//other markup
<div class="row">
@foreach (var item in Model)
{
<div class="col-md-2">
<img class="img-responsive img-rounded" src="/Item/RetrieveImage/@item.Id" />
<div>
<p>@item.ItemName</p>
<p>Rs.<span>@item.Price</span>
<a href="?/order/create/@item.Id"><span class="pull-right">Order Now </span></a>
<p class="text-warning"><span>@item.Rating stars</span></p>
</div>
</div>
}
</div>
控制器
[HttpGet]
public ActionResult Create(int id)
{
db = new DBContext();
//var categories = new SelectList(new[] { "Rice","Karachi","Fast Food","Drinks", "Shakes" });
ViewBag.Categories = new SelectList(db.Categories, "CategoryID", "CategoryName");
return View();
}
[Authorize]
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Create(MvcHotel.Models.Order order)
{
//HttpPostedFileBase file = Request.Files["ImageData"];
//int i = UploadImageInDataBase(file, order);
if (ModelState.IsValid)
{
db = new DBContext();
db.Orders.Add(order);
db.SaveChanges();
return RedirectToAction("Index");
}
return Index();
}
现在我想传递项目ID,以便项目名称及其类别自动显示在订单创建(查看)的下拉列表中。请帮助我
创建一个模型class来为您的观点服务:
public class ItemModel
{
public int ItemId { get; set; }
public List<Category> Categories { get; set; }
public SelectedCategoryId { get; set; }
}
创建一个实例并将其填充到您的控制器中,然后将其传递给 Create(int id)
操作中的 View
方法:
return View(instanceHere);
然后在你的视图中使用它:
@model ItemModel