0

我正在使用 C# 在 ASP.NET MVC 4 中工作,我正在尝试将一个 ActionResult 方法的参数转换为一个变量,以便在另一种方法中使用。所以我有这个例如:

    public ActionResult Index(int ser)
    {
        var invoice = InvoiceLogic.GetInvoice(this.HttpContext);

        // Set up our ViewModel
        var pageViewModel = new InvoicePageViewModel
        {
            Orders = (from orders in proent.Orders
                      where orders.Invoice == null
                            select orders).ToList(),
            Callouts = (from callouts in proent.Callouts
                        where callouts.Invoice == null
                            select callouts).ToList(),
            InvoiceId = ser,
            InvoiceViewModel = new InvoiceViewModel
        {
            InvoiceId = ser,
            InvoiceItems = invoice.GetInvoiceItems(),
            Clients = proent.Clients.ToList(),
            InvoiceTotal = invoice.GetTotal()
        }
    };
        // Return the view
        return View(pageViewModel);
    }

我需要该 int ser 以某种方式变为“全局”,并且它的值可用于此方法:

    public ActionResult AddServiceToInvoice(int id)
    {

        return Redirect("/Invoice/Index/");
    }

正如您在上面的 return 语句中看到的那样,我收到一个错误,因为我没有将变量“ser”传递回 Index,但我需要它与调用操作时传递给 Index 的值相同。有人可以帮忙吗?

4

2 回答 2

1

当您构建到该方法的链接时,您需要确保将变量ser连同它需要的任何其他参数一起传递给该方法(不清楚AddServiceToInvoice方法中的 id 是否实际上是ser参数。假设它是不是)

视图中的操作链接

@Html.ActionLink("Add Service", "Invoice", "AddServiceToInvoice", new {id = IdVariable, ser = Model.InvoiceId})

AddServiceToInvoice 操作方法

public ActionResult AddServiceToInvoice(int id, int ser)
    {
        //Use the redirect to action helper and pass the ser variable back
        return RedirectToAction("Index", "Invoice", new{ser = ser});
    }
于 2013-08-05T18:35:28.933 回答
0

您需要使用该 ID 创建一个链接:

如果您正在执行如下获取请求:

@Html.ActionLink("Add service to invoice", "Controller", "AddServiceToInvoice", 
new {id = Model.InvoiceViewModel.InvoiceId})

否则,如果您想发帖,则需要创建一个表单:

@using Html.BeginForm(action, controller, FormMethod.Post)
{
    <input type="hidden" value="@Model.InvoiceViewModel.InvoiceId" />
    <input type="submit" value="Add service to invoice" />
}
于 2013-08-05T18:22:37.907 回答