如何在MVC的aspx页面中捕获id

时间:2013-05-08 17:03:41

标签: c# asp.net-mvc

我正在从事MVC制作项目。

在我的生产详细信息视图中,我有一些按钮可以从数据库中获取更多数据,但为此我需要产品的ID。我可以看到它存在,但我可以抓住它吗?

这是我的控制器返回数据:

 public ActionResult Details(long AProductionOrderId)
    {

        ProductionOrderList item = new ProductionOrderList();
        item = ProductionOrderReg.GetProductionOrders(conn, AProductionOrderId);
        ViewData["item"] = item;
        return View();
    }

这是我加载的详细信息页面,我可以看到id,但是如何捕获并在左边的按钮中使用它来带来更多日期?

enter image description here

3 个答案:

答案 0 :(得分:0)

您可以在视图页面上使用隐藏的输入来提交ID。

你的观点:

<form method="post">
    <button type="submit">Button Text</button>
    <input type="hidden" name="AProductionOrderId" value="@ViewData['item']">
</form>

答案 1 :(得分:0)

我写这个我的控制器

ViewData["id"] = AProductionOrderId;

并在我看来抓住了它

 long id = Convert.ToInt64( ViewData["id"]);

答案 2 :(得分:0)

如果您的控制人是:

public ActionResult Details(long AProductionOrderId)
{
    var item = ProductionOrderReg.GetProductionOrders(conn, AProductionOrderId);
    ViewBag.ProductionOrderId = AProductionOrderId;
    return View(item);
}

然后你的AProductionOrderId将在ViewBag中,虽然我没有看到你需要它的原因,因为无论什么类型的项目(单个对象实例或对象列表)它包含你的ID作为属性因为你是通过此ID获取项目。无论如何,在您的模型中,您需要声明您的模型:

 @model YourModelNamespace.ProductionOrderList

现在您可以在视图中访问模型的任何属性。但如果您真的想要,可以通过ViewBag访问它:

 @{
    long AProductionOrderId = Viewbag.AProductionOrderId;
 }