首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于参数的看似愚蠢的查询

关于参数的看似愚蠢的查询
EN

Stack Overflow用户
提问于 2013-08-06 02:09:24
回答 2查看 87关注 0票数 0

我正在使用带有C#的ASP.NET MVC4,并且我正在尝试将一个ActionResult方法的参数转换为一个变量,以便在另一个方法中使用。所以我举了个例子:

代码语言:javascript
复制
    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服务以某种方式变得“全局”,并且它的值对于这个方法是可用的:

代码语言:javascript
复制
    public ActionResult AddServiceToInvoice(int id)
    {

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

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

EN

回答 2

Stack Overflow用户

发布于 2013-08-06 02:35:29

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

视图中的操作链接

代码语言:javascript
复制
@Html.ActionLink("Add Service", "Invoice", "AddServiceToInvoice", new {id = IdVariable, ser = Model.InvoiceId})

AddServiceToInvoice操作方法

代码语言:javascript
复制
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});
    }
票数 1
EN

Stack Overflow用户

发布于 2013-08-06 02:22:38

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

如果你正在做一个get-request,应该是这样的:

代码语言:javascript
复制
@Html.ActionLink("Add service to invoice", "Controller", "AddServiceToInvoice", 
new {id = Model.InvoiceViewModel.InvoiceId})

否则,如果你想发布一篇文章,你需要创建一个表单:

代码语言:javascript
复制
@using Html.BeginForm(action, controller, FormMethod.Post)
{
    <input type="hidden" value="@Model.InvoiceViewModel.InvoiceId" />
    <input type="submit" value="Add service to invoice" />
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18064810

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档