【问题标题】:asp-route-[parameter] not being added to route/url. Why?asp-route-[参数] 未添加到路由/url。为什么?
【发布时间】:2017-08-19 09:57:30
【问题描述】:

我正在为解析器构建一个 Web 应用程序。主页是一个带有基本控件的简单剃须刀视图,允许用户添加输入,稍后将显示解析结果。该主页的组件之一是 ViewComponent,它返回解析器功能的两个相关部分视图之一:允许用户添加输入的第一个视图和显示输出的结果视图。显示一个或另一个视图的决定将取决于一个布尔变量“已解析”,它将记录用户是否添加了输入并已解析。我们将主页面称为“Home”,输入视图称为“Main”,输出视图称为“Results”。如果用户添加输入并单击“Parse”按钮,“parsed”将为真,结果视图将加载。

我已经为此行为配置了逻辑和路由,如果我手动键入路由并添加可选参数,我可以毫无问题地对其进行测试。因此,例如,所有这些都可以正常工作:

  • localhost:1111/ -> 显示 Main。
  • localhost:1111/?parsed=false -> 显示 Main。
  • localhost:1111/?parsed=true -> 显示结果。
  • localhost:1111/parser/?parsed=false -> 显示 Main,依此类推。

那有什么问题呢?当我点击“解析”按钮时,我无法让系统检索到预期的 url localhost:1111/?parsed=true,而是获取 localhost:1111/?。从this tutorial(以及我读过的更多内容)我了解到我需要使用 asp-route-[parameter],并且它必须与正在调用的方法的签名相匹配在 asp-action 中,但我无法让它工作。

这是有问题的按钮:

<div class="col-2">
    <form>
        <button class="button"
                asp-controller="Home" asp-action="Index"
                asp-route-parsed="true">
            Start Parsing
        </button>
    </form>
</div>

这是它调用的方法:

    [Route("parser/{parsed:bool?}")]
    [Route("/{parsed:bool?}")]
    [Route("")]
    public ViewResult Index(bool parsed = false) {
        ViewData["Title"] = "Home";

        if (parsed == true) {
            Helper.parsed = true;
        } else {
            Helper.parsed = false;
        }

        return View("Index", Helper);
    }

我真的很感激这里的一些指导,我已经阅读了几篇文章和文档,但看不出问题出在哪里。任何人都想看看整个系统,the code is available here。提前致谢。

【问题讨论】:

    标签: asp.net asp.net-mvc razor asp.net-core-mvc


    【解决方案1】:

    您不需要表单来重定向到操作。使用简单的链接,例如:

    <div class="col-2">
        <a class="button"
                asp-controller="Home" asp-action="Index"
                asp-route-parsed="true">
            Start Parsing
        </a>
    </div>
    

    同样从方法中删除所有[Route] 元素将生成所需的链接。

    【讨论】:

    • 遗憾的是,事实并非如此,我已经尝试了您的建议,即使项目编译并运行。按钮死了。这可能与丢失的 asp-route-parsed 参数有关吗?谢谢!
    • 我刚刚对其进行了测试,它运行良好。我已将值正确传递给控制器​​。网址是localhost/parser/value
    猜你喜欢
    • 2023-02-16
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 2020-11-26
    • 1970-01-01
    • 2015-01-25
    • 1970-01-01
    相关资源
    最近更新 更多