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

0

その ID でリンクを作成する必要があります。

次のような get-request を実行している場合:

@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 に答える