【问题标题】:Method in HomeController not calledHomeController 中的方法未调用
【发布时间】:2013-03-10 19:24:57
【问题描述】:

我尝试从我的视图页面调用一个方法,但它没有被调用。 我的 Home Controller 示例代码是

public ActionResult Sample(Guid id)
    {
        List<Images> imgList = ImagesManager.GetAlllImages();
        var bindlist = (from i in imgList where id == i.ImageId select i).ToList();
        return RedirectToAction("Index",bindlist);
    }

我尝试调用它的 .cshtml 页面(视图)代码是

<div class="product">
                            <a href="Sample/?Id=@item.ImageId" class="info">
                                <span class="holder">
                                    <img src="@item.ImagePath" alt="">
                                    <span class="dd" >@item.ImageName</span>
                                    <span class="author">by John Smith</span>

为什么没有调用“Sample”方法。

错误是“找不到资源”

【问题讨论】:

  • MVC 不传递这样的变量。检查这个答案也许可以帮助你进一步stackoverflow.com/questions/155864/…
  • 虽然它不是理想的 MVC 形式,但可以使用查询字符串。是你的路线错了。 Sample 是一个动作,而不是一个控制器。在这种情况下,您的路线应该是“{Controller}/Sample?....”。或者更好的是,正如@bas 指出的那样,您应该使用 ActionLink Helper。
  • @DaveA Sample 是 action ,但在我以前的应用程序中,我使用它相同并且它可以工作但现在不行请提供更多建议谢谢
  • @MohdWaseem,我看不出这是如何工作的,但实际上你的路径应该是 Controller/Action。您的控制器的名称是什么?在你的 Action 和你的 MVC 应该找到你的 Action Method 之前使用它
  • @DaveA 我的控制器名称是 Home

标签: c# asp.net-mvc-4


【解决方案1】:

我想这就是你要找的东西

@Html.ActionLink(
    "text for your link", 
    "Sample", // action method
    "Home",   // controller
    new { id = item.ImageId }, // your variable you want to pass
    null) 

【讨论】:

  • 现在又不工作了:错误消息:“找不到资源。请求的 URL:/Home/Sample/d4ba72ab-260d-46f7-bc21-36129a2bacdd”
  • @MohdWaseem heya 抱歉,当您输入所有这些内容时正在睡觉 :)。很高兴你让它工作了。
猜你喜欢
  • 2012-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-03
  • 2022-12-16
  • 2015-06-18
  • 1970-01-01
相关资源
最近更新 更多