HTML.ActionLink将我重定向到错误的控制器

GomuGomuZoro

因此,基本上,该网站向用户显示了一个下拉列表以选择类别。以下操作用于让用户选择类别并显示项目:

    public ActionResult SelectResourceCategory()
    {
        return View(new ResourceModel());
    }

    [HttpPost]
    public ActionResult SelectResourceCategory(ResourceModel rm)
    {
        Resource r = new Resource();
        r.CategoryID = rm.Categories.Id;
        List<Resource> GetCourses = new UserBL().GetResourcesByCategoryID(r.CategoryID);
        var vRM = new List<ResourceModel>();

        foreach (Resource rs in GetCourses)
        {
            ResourceModel frm = new ResourceModel();
            frm.ResourceID = rs.Id;
            frm.Title = rs.Title;
            frm.Description = rs.Description;
            frm.Price = (float)rs.Price;
            vRM.Add(frm);
        }

        return View("ShowResources", vRM);
    }

    public ActionResult ShowResources()
    {
        return View();
    }

用户选择后,网页将向用户显示用户可以购买的可用资源列表。使用下面的链接,我将所选项目的resourceID作为参数传递:

@Html.ActionLink("Buy", "BuyResource", new RouteValueDictionary(new { id = item.ResourceID }))

然后动作“ BuyResource”执行以下操作:

        public ActionResult BuyResource(int id)
    {
        Session["Rid"] = id; //GOTO: RedirectFromPayPal
        Resource r = new UserBL().GetResourceByID(id);
        return View(r);
    }

问题:由于某种原因,用户单击“购买”时,页面会将用户重定向回他需要选择类别的页面,特别是“ SelectResourceCategory”操作。它应该重定向到“ BuyResource”操作,我不明白为什么它不这样做。

编辑:

SelectResourceCategory视图:

@model SSD.Models.ResourceModel

@{
ViewBag.Title = "SelectResourceCategory";
Layout = "~/Views/Shared/UserPage.cshtml";
}

<h2>SelectResourceCategory</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
    <legend>ResourceModel</legend>

    <div class="editor-field">
        @Html.DropDownListFor(model => model.Categories.Id, Model.CategoryList)
        @Html.ValidationMessageFor(model => model.Categories.Id)
    </div>

    <p>
        <input type="submit" value="Show available resources" />
    </p>
</fieldset>
}

路由设置:

public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
    }

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}", // URL with parameters
            new { controller = "Home", action = "Index", id = "" } // Parameter defaults
        );



    }

    protected void Application_Start()
    {
        AreaRegistration.RegisterAllAreas();

        RegisterGlobalFilters(GlobalFilters.Filters);
        RegisterRoutes(RouteTable.Routes);
    }
斯特凡

尝试包含目标控制器的名称:

@Html.ActionLink("Buy", "BuyResource", "YOUR CONTROLLER NAME", 
                 new { id = item.ResourceID })

还要确保item.ResourceID可转换为int

更新:

在你的:

routes.MapRoute(
        "Default", // Route name
        "{controller}/{action}", // URL with parameters
        new { controller = "Home", action = "Index", id = "" } // Parameter defaults
    );

id=""是不必要的,它可能会干扰您的路由。您可能要考虑使用默认实现:

routes.MapRoute(
      "Default",
      "{controller}/{action}/{id}", 
      new { controller = "Home", action = "Index", id = UrlParameter.Optional }
   );

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

错误:我的控制器将我重定向到另一个URL

来自分类Dev

从index.html.erb重定向到带参数的控制器方法

来自分类Dev

HTML重定向到错误

来自分类Dev

将我的网站重定向到MVC中的默认控制器

来自分类Dev

可点击的div,将我重定向到另一个HTML页面

来自分类Dev

html警报不断将我的页面重定向到index.html,我希望它仅显示警报

来自分类Dev

Spring Boot - 从控制器重定向到 index.html

来自分类Dev

无法在Angular js中将我的控制器与html正确连接

来自分类Dev

使用html.actionlink向控制器发送值

来自分类Dev

来自 Html.ActionLink 的控制器参数

来自分类Dev

Html.ActionLink-我想重定向到同一页面但使用不同的参数

来自分类Dev

为什么 Redirect() 函数试图将我重定向到同一个控制器内

来自分类Dev

路由重定向到错误的控制器

来自分类Dev

控制器中的重定向错误

来自分类Dev

HTML重定向到根

来自分类Dev

Django / HTML提交按钮重定向到错误的页面

来自分类Dev

mod_rewrite错误地重定向到.html

来自分类Dev

我的/index.html重定向到/ [object Object]

来自分类Dev

我的/index.html重定向到/ [object Object]

来自分类Dev

获取当前的动作和控制器,并将其用作Html.ActionLink中的变量?

来自分类Dev

Html.ActionLink向控制器正确方法转发而不是参数值

来自分类Dev

所有浏览器都将我重定向到错误的站点

来自分类Dev

如果网址错误或Yii中的控制器/操作错误,如何重定向到无效页面?

来自分类Dev

AngularJS如何动态添加HTML并绑定到控制器

来自分类Dev

在angularjs中将变量从控制器传递到html

来自分类Dev

在弹簧传递来自控制器值到HTML

来自分类Dev

如何从html获取选择值到控制器

来自分类Dev

如何从 HTML 访问变量内容到控制器?

来自分类Dev

如何将多值从控制器传递到 HTML

Related 相关文章

  1. 1

    错误:我的控制器将我重定向到另一个URL

  2. 2

    从index.html.erb重定向到带参数的控制器方法

  3. 3

    HTML重定向到错误

  4. 4

    将我的网站重定向到MVC中的默认控制器

  5. 5

    可点击的div,将我重定向到另一个HTML页面

  6. 6

    html警报不断将我的页面重定向到index.html,我希望它仅显示警报

  7. 7

    Spring Boot - 从控制器重定向到 index.html

  8. 8

    无法在Angular js中将我的控制器与html正确连接

  9. 9

    使用html.actionlink向控制器发送值

  10. 10

    来自 Html.ActionLink 的控制器参数

  11. 11

    Html.ActionLink-我想重定向到同一页面但使用不同的参数

  12. 12

    为什么 Redirect() 函数试图将我重定向到同一个控制器内

  13. 13

    路由重定向到错误的控制器

  14. 14

    控制器中的重定向错误

  15. 15

    HTML重定向到根

  16. 16

    Django / HTML提交按钮重定向到错误的页面

  17. 17

    mod_rewrite错误地重定向到.html

  18. 18

    我的/index.html重定向到/ [object Object]

  19. 19

    我的/index.html重定向到/ [object Object]

  20. 20

    获取当前的动作和控制器,并将其用作Html.ActionLink中的变量?

  21. 21

    Html.ActionLink向控制器正确方法转发而不是参数值

  22. 22

    所有浏览器都将我重定向到错误的站点

  23. 23

    如果网址错误或Yii中的控制器/操作错误,如何重定向到无效页面?

  24. 24

    AngularJS如何动态添加HTML并绑定到控制器

  25. 25

    在angularjs中将变量从控制器传递到html

  26. 26

    在弹簧传递来自控制器值到HTML

  27. 27

    如何从html获取选择值到控制器

  28. 28

    如何从 HTML 访问变量内容到控制器?

  29. 29

    如何将多值从控制器传递到 HTML

热门标签

归档