【问题标题】:T4MVC adding current page controller to action linkT4MVC 将当前页面控制器添加到操作链接
【发布时间】:2014-05-17 06:54:07
【问题描述】:

我在注册控制器 (Index.cshtml) 的主页中有以下 ActionLink

@Html.ActionLink("terms of service", Url.Action(MVC.Home.Terms()), 
                 null, new  { target="_blank" })

生成以下 URL。为什么要添加“注册”?就好像注册页面中拥有自己的控制器的链接正在将注册控制器预先附加到该视图中的任何链接?

http://localhost/register/terms-of-service

    routes.MapRoute(
        "Terms",
        "terms-of-service",
        new { controller = "Home", action = "Terms" }
    );

public partial class HomeController : SiteController
{
    public virtual ActionResult Terms()
    {
        return View(new SiteViewModel());
    }

【问题讨论】:

    标签: asp.net-mvc t4mvc


    【解决方案1】:

    您能否尝试使用标准 MVC 而不是 T4MVC 生成相同的链接,以检查行为是否特定于 T4MVC?带有路由的 MVC 行为通常令人费解,因此在将其作为 T4MVC 事物进行调查之前先隔离它总是好的。

    【讨论】:

    • 你确实给了我一个线索,我删除了 Url.Action, @Html.ActionLink("terms of service", MVC.Home.Terms(), new { target="_blank" }) .
    【解决方案2】:

    这对我有用...从没有重定向的 .cshtml 文件下载等...花了一段时间才得到有效的东西

    <a href="@Url.Action("ExportAsCSV", "Download", new { target = "_blank" })" >Download2</a> 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-01
      • 2016-01-03
      • 2020-05-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多