标签: actionlink

ViewBag的Html.ActionLink值

在ASP MVC C#中我在ViewBag.cars中放了一个List(汽车),现在我想用每辆汽车的标题创建一个actionlink,如下所示:

@if (ViewBag.cars != null)
{
    foreach (var car in ViewBag.cars)
    {
         <h4>@Html.ActionLink(@car.title, "Detail", "Cars", new { id = @car.id }, new { @class = "more markered" })</h4>
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用@ car.title或只是car.title作为值时得到的错误,我收到此错误:

CS1973: 'System.Web.Mvc.HtmlHelper<AutoProject.Models.CarDetails>' has no applicable method named 'ActionLink' but appears to have an extension method by that name.
 Extension methods cannot be dynamically dispatched. Consider casting the dynamic arguments or calling the extension method without the extension method syntax.
Run Code Online (Sandbox Code Playgroud)

我应该填写什么作为Actionlink的第一个参数?

actionlink viewbag asp.net-mvc-4

4
推荐指数
1
解决办法
2万
查看次数

可以为ASP.NET的Html.ActionLink()方法编写扩展方法吗?

现在,我正在尝试解决一个IE6/7错误,该错误要求</a>使用此特定于IE的注释包含结束标记,以使某些下拉菜单工作:

<!--[if IE 7]><!--></a><!--<![endif]-->
Run Code Online (Sandbox Code Playgroud)

不幸的是,我无法将此直接注入到我的View页面代码中,如下所示:

<%= Html.ActionLink("LinkName<!--[if IE 7]><!--></a><!--<![endif]-->","Action","Controller") %>
Run Code Online (Sandbox Code Playgroud)

由于Html.ActionLink将做安全的事情并过滤掉注释以防止Javascript注入攻击.好的.我很好.好的设计决定.

我想要做的就是为此编写一个扩展方法,但是这个过程正在躲避我,因为我之前没有这样做过.

我认为这样可行,但是Intellisense似乎没有采用我编写的这种扩展方法.

public static class MyLinkExtensions
{
    public static string ActionLinkIE(this HtmlHelper htmlHelper,  
        string linkText, string actionName, string controllerName)
    {
        return LinkExtensions.ActionLink(htmlHelper, linkText, actionName, controllerName).
            Replace(@"</a>", @"<!--[if IE 7]><!--></a><!--<![endif]-->");
    }
}
Run Code Online (Sandbox Code Playgroud)

有什么建议?

编辑:班级名称是否重要?(就我而言,我称之为MyLinkExtensions)

此外,鼠标悬停在<%= Html.ActionLink() %>那里似乎已经是一个扩展方法.我可以扩展扩展方法吗?

asp.net-mvc extension-methods actionlink html.actionlink

3
推荐指数
1
解决办法
1702
查看次数

儿童行动的行动链接

我用Html.Action方法调用了另一个视图.当用户单击操作链接时,我想使用参数在子视图内调用相同的操作.

当我写这段代码时,我收到此错误消息:

Html.ActionLink("link", "Configure", new { id = 2 })
Run Code Online (Sandbox Code Playgroud)

"配置"操作只能由子请求访问.

我该如何处理这个问题?

编辑:我将尝试重新解释问题:

我的父视图是ConfigureMethod.cshtml.我称之为儿童观点:

@Html.Action("Configure", "Payment");
Run Code Online (Sandbox Code Playgroud)

它转到此控制器并在ConfigureMethod视图中返回actionresult(而不是partialview):

[ChildActionOnly]
public ActionResult Configure()
{

}
Run Code Online (Sandbox Code Playgroud)

在配置视图中我创建了一个类似的动作链接:

Html.ActionLink("link", "Configure", new { id = x.Id })
Run Code Online (Sandbox Code Playgroud)

应该转到这个控制器:

[ChildActionOnly]
public ActionResult Configure(int Id)
{

}
Run Code Online (Sandbox Code Playgroud)

但是,当写入childonly属性时,它会给出错误.当我删除此属性时,它可以工作,但结果直接来自,而不是在ConfigureMethod视图中.

谢谢.

c# action actionlink asp.net-mvc-3

3
推荐指数
1
解决办法
8133
查看次数

ActionLink删除确认

我想制作一个Javascript弹出窗口,询问我是否要删除列表.

这是我现在所拥有的(不起作用 - 当被控制器捕获时,Guid为null).

@Html.ActionLink("Delete", "Delete", "Listing", listing.Guid, new { onclick = "return confirm('Are you sure you want to delete this listing?')" })
Run Code Online (Sandbox Code Playgroud)

第一个Delete是字符串,第二个Delete是方法的ActionName,Listing是Controller名称,listing.Guid是我要发送的参数,最后,当然,onclick是Javascript.

知道我可能会走错路吗?

编辑另外,任何想法如何我有一个更漂亮的确认对话框?使用Bootstrap.

asp.net-mvc actionlink

3
推荐指数
1
解决办法
7127
查看次数

导航到新页面/操作方法时的MVC 3 Ajax加载图标

我一直在广泛搜索如何创建导航链接,当使用Razor视图引擎在MVC 3中运行action方法时,该链接将显示ajax Loading图标.虽然我发现了大量有关添加加载图标的信息,但所有这些信息似乎都与在当前视图中发布数据有关.

我有一个简单的菜单页面,其中包含动作链接,可以在其他页面上调用操作方法,从而呈现视图.下面显示了转到OrdersController和Index操作方法的示例.

Menu.cshtml

@Html.ActionLink("Orders", "Index", "Orders",null,new { id = "OrderLink" })<br />
Run Code Online (Sandbox Code Playgroud)

我试图修改上面的链接,以便在处理索引操作时和返回视图之前,显示ajax加载图标.

我创建了一个包含加载图标的div,并将其放在我的共享_Layout.cshtml页面中.

_Layout.cshtml

<div id="ajaxLoaderDiv" style="position:fixed; top:40%; left:45%; z-index:1234; display:none;">
    <img src="@Url.Content("~/Images/AjaxLoaderImg.gif")" alt="Loading..."class="ajax-loader" />
</div>
Run Code Online (Sandbox Code Playgroud)

为了尝试显示ajax加载图标,我尝试将链接更改为Ajax ActionLink.

Menu.cshtml

@Ajax.ActionLink("Orders", "Index", "Orders", new AjaxOptions { LoadingElementId="ajaxLoaderDiv" });<br />
Run Code Online (Sandbox Code Playgroud)

这是因为它显示ajax Loading图标几秒钟.我甚至可以在OrdersController的Index动作方法中放置一个断点,它会点击它.但是当Action Method完成时,Orders\Index.cshtml永远不会呈现给页面.我只是留在Menu\Index.cshtml页面上.

我知道Orders/Index.cshtml应该呈现一个视图.

OrdersController.cs

public ActionResult Index()
{
    ....

return View(OrdersViewModel);
}
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?此视图是否返回到我的ajax调用而不是渲染?我该如何获得此功能?

如果我以错误的方式解决这个问题,请告诉我.

在发出请求时,我应该在目标页面的操作方法中而不是在链接上执行此操作吗?也许通过在我请求的索引操作方法中显示加载图标作为第一行代码,并在返回视图之前再次隐藏它?

我想尝试通过JQuery Show/hide组合来做到这一点?

<script type="text/javascript">
    function showLoadingSpinner() {
        $("#ajaxLoaderDiv").show();
    };
    function hideLoadingSpinner() {
        $("#ajaxLoaderDiv").hide();
    };

</script>
Run Code Online (Sandbox Code Playgroud)

在此先感谢并提供所有帮助和建议

乍得

asp.net-mvc jquery actionlink actionmethod

3
推荐指数
1
解决办法
7361
查看次数

MVC ActionLink html属性

我想使用ActionLink而不是普通的html来弹出我的模态窗口,但它的工作正常与纯HTML标签但不与MVC actionlink一起请看下面.

来自:(工作)

<button class="btn btn-primary btn-lg" data-toggle="modal" data-target="#myModal">
Run Code Online (Sandbox Code Playgroud)

到:(错误)

@Html.ActionLink("Edit", "Edit", null, new { id = @item.Id }, new { @data-toggle="modal", @data-target="#myModal" })
Run Code Online (Sandbox Code Playgroud)

无效的匿名类型成员声明符.必须使用成员分配,简单名称或成员访问声明匿名类型成员.

asp.net-mvc actionlink asp.net-mvc-4

3
推荐指数
1
解决办法
5976
查看次数

asp.net mvc:如何进行图像映射?

如何在ASP.NET MVC中构造图像映射?对于参考:

<map id='headerMap'>
    <area shape='rect' href="Default.aspx" coords='300,18,673,109' />
</map>
Run Code Online (Sandbox Code Playgroud)

马库斯(Markus)回答的一个无关问题的答案类似:

<a href="<%= Url.RouteUrl("MyRoute", new { param1 = "bla", param2 = 5 }) %>">
   put in <span>whatever</span> you want, also <img src="a.gif" alt="images" />.
</a>
Run Code Online (Sandbox Code Playgroud)

抱歉,这是多余的。我的研究表明,这可能是版本2的mvc答案。寻找类似于Html.ActionLink的东西(如果存在)。显然,我可以按名称引用路由并使用该Url.RouteUrl发送参数,但这是否是处理它的实际方法?

谢谢

asp.net-mvc imagemap actionlink

2
推荐指数
1
解决办法
5130
查看次数

如何在C#中的ActionLink html帮助器中指定控制器

我有一个使用C#RazorASP.NET MVC3中开发的Web应用程序.

我想通过使用ActionLink HTML帮助程序调用特定Controller的特定Action方法.我知道ActionLink的第二个参数指定要从默认路由调用的Action方法,这是我的Global.asax文件中唯一的一个:

routes.MapRoute(
            "Default", // Route name
            "{controller}/{action}/{id}", // URL with parameters
            new { controller = "Index", action = "Index", id = UrlParameter.Optional } // Parameter defaults
        );
Run Code Online (Sandbox Code Playgroud)

我想从Home Controller 调用Download Action方法而不是Index.这不起作用:

@Html.ActionLink("Presentation", "Download", "Home", new { topicId = topic.TopicId } )
Run Code Online (Sandbox Code Playgroud)

它需要第三个参数类型的对象,但我无法在网上找到任何例子.

调用特定Controller/ActionMethod需要哪些步骤?我应该在我的Global.asas文件中创建另一个路由吗?

谢谢

c# actionlink routevalues asp.net-mvc-3

2
推荐指数
1
解决办法
2万
查看次数

保存CheckBox更改的更改?

我有一个MVC索引页面,反映了数据库中的表.
其中一列是布尔值.
我希望在索引页面中有一个复选框,当单击时,立即调用一个动作,该操作将在现场保存新状态而无需提交/刷新.

checkbox asp.net-mvc submit actionlink checkboxfor

2
推荐指数
1
解决办法
7896
查看次数

如何使用actionlink将参数传递给控制器

我需要将视图数据(整数)传递给另一个控制器.

这就是我的尝试;

@Html.ActionLink("Get Location", "Index", "Map", new { Id=@item.Id},null)
Run Code Online (Sandbox Code Playgroud)

我需要将此信息传递给"Map"Controller的Index动作方法;

  public ActionResult Index(int? i)
    {
        var Id = from o in db.Objects where o.Id == i select o;
        return View(Id);
    }
Run Code Online (Sandbox Code Playgroud)

但是参数没有得到传递......这是传递参数的方法吗?当我把断点我发现那个int?我是空的..为什么?

asp.net-mvc actionlink

2
推荐指数
1
解决办法
2万
查看次数