【问题标题】:MVC + BootstrapMVC + 引导
【发布时间】:2015-11-06 17:24:31
【问题描述】:

我有一个带有以下菜单项的引导侧菜单

<li class="treeview">
    <a href="#">
        <i class="fa fa-files-o"></i> <span>Reporting</span> <i class="fa fa-angle-left pull-right"></i>
    </a>
    <ul class="treeview-menu">
        <li>
            <a href="@Url.Action("Enquiries", "Enquiry", new {captureQuote = false})"><i class="fa fa-circle-o"></i> Enquiries</a>
        </li>
    </ul>
</li>

问题是当我点击它时,它会路由到/Enquiry/Enquiries?captureQuote=True

我只希望它显示/Enquiry/Enquiries 目前我在 Controller 中使用以下解决方法,但它很乱,它会显示/Enquiry/EnquiryList

    [HttpGet]
    public ActionResult Enquiries(bool captureQuote)
    {
        Session["Q"] = captureQuote;
        return RedirectToAction("EnquiryList");
    }

    public ActionResult EnquiryList()
    {
        var captureQuote = (bool)Session["Q"];
        return View("Enquiries",new EnquiriesModel()
        {
            CanDoQuote = captureQuote
        });
    }

有什么更好的选择?

【问题讨论】:

  • 这个SO question 有一些有用的信息,你不能摆脱查询字符串中的一些数据,但你可以让 url 看起来更干净。

标签: c# asp.net-mvc


【解决方案1】:

您可以使用 POST 而不是 GET。因此,您可以将链接替换为包含您不想出现在查询字符串中的参数的隐藏字段的表单:

@using (Html.BeginForm("ActionName","ControllerName"))
{
     @Html.Hidden("ID",value)

     <button type="submit">Submit</button>
}

【讨论】:

  • 这不能回答 OP 的问题。您只是在告诉 OP 如何使用 POST 请求
猜你喜欢
  • 2020-05-30
  • 1970-01-01
  • 1970-01-01
  • 2017-07-19
  • 1970-01-01
  • 2016-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多