标签: actionlink

如何在html动作链接中插入图像?asp.net mvc

我在html操作链接的webproject上有导航和许多链接.它们很难看下划线.我想插入一些带有名字的图像或玩动作风格链接.可能吗?怎么做?

感谢并保重,Ragims

c# asp.net-mvc actionlink

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

ASP.NET MVC Html.ActionLink结果URL - 编码方式

我在MVC控制器中创建了大量的操作.

public ActionResult DoSmth1(string token)
public ActionResult DoAnother2(string token)
Run Code Online (Sandbox Code Playgroud)

当我必须调用ActionLink时..

=Html.ActionLink<SomeController>( x=> x.DoSmth(item.property), item.property)
=Html.ActionLink<AnotherController>( x=> x.DoAnother(item.property), item.property)
Run Code Online (Sandbox Code Playgroud)

...它会生成不同的网址:

/Some/DoSmth/stringvalue
/Another/DoAnother?property=stringvalue
Run Code Online (Sandbox Code Playgroud)

在哪里设置构建URL的方式?我也没有想法...((


好的,有一点方法: - 如果属性名称与路由模式中使用的相同 - 例如controller,action和id - MVC将始终使用路由构建器(/ c/a/id).

这有点帮助(所以 - 尽可能将参数命名为"id"))

但整体问题仍然有效......


必须与路径中的令牌命名相同

确切地说 - 我第一次有这个想法.

但是 - 现在我只有默认路由({controller}/{action}/{id})但是仍然在斜杠中有"属性"的URL ...这很奇怪.

  • 还有一种骗子的方式 - 创建一个精确的路线,匹配给定的控制器与它的参数名称 - 似乎将是最终的答案 - 但我仍然不想这样做((

.net asp.net-mvc routing html-helper actionlink

6
推荐指数
1
解决办法
7147
查看次数

如何将Textboxes值传递给我的Ajax.ActionLink?

在我的ASP.NET MVC应用程序中,我希望用户将值添加到文本框中,然后按我的Ajax.ActionLink.我想做这样的事情:

Ajax.ActionLink("Go","Action","Controller",new {value = textbox1.value})

或者我怎么能将这个文本框值恢复到我的行动?jQuery的?

asp.net ajax asp.net-mvc actionlink

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

MVC Html.ActionLink忽略Controller参数

我有一个视图,其中包含以下代码:

<h2><%= Model.Company.CompanyName %></h2>
<h3>Projects</h3>
<ul>
<%
    foreach (Project p in Model.Company.Projects)
    {
        %>
        <li><%= Html.ActionLink(p.ProjectName,"Details", "Projects", new {id=p.ProjectID,companyId=p.CompanyID}) %></li>
        <%   
    } 
%>
</ul>
<%= Html.ActionLink("Add Project", "Create", "Projects", new {id = Model.CompanyID}) %>
<br />
<h3>Users</h3>
Run Code Online (Sandbox Code Playgroud)

我有一个ProjectsController但是当我运行应用程序并单击Add Project Link时,它希望转到/ Company/Create而不是/ Projects/Create.我错过了什么吗?

model-view-controller actionlink

6
推荐指数
1
解决办法
4919
查看次数

将routeValues的Dictionary传递给ActionLink

所有,

掌握ASP.NET MVC.到目前为止,这么好,但这个有点疯了.

我有一个视图模型,其中包含超链接的属性字典,如下所示:

menu =模型变量

Html.ActionLink(Html.Encode(menu.Name), Html.Encode(menu.Action), Html.Encode(menu.Controller), menu.Attributes, null)
Run Code Online (Sandbox Code Playgroud)

问题是"menu.Attributes"的位置需要表单中的对象:

new  { Name = "Fred", Age=24 }
Run Code Online (Sandbox Code Playgroud)

据我所知,这个匿名对象实际上是通过反射转换为字典,但是你不能在第一时间将字典传递给它!

为链接生成的Html只显示字典类型.

我到底怎么绕这个?重点是它的一般和控制器可以设置菜单.以前的属性....

基于下面的帖子,我尝试了以下内容:

Html.ActionLink(Html.Encode(menu.Name), Html.Encode(menu.Action), Html.Encode(menu.Controller), new RouteValueDictionary(menu.Attributes), new Dictionary<string,object>())
Run Code Online (Sandbox Code Playgroud)

但这仍然不起作用(我猜代码内部调用带对象的泛型方法?).以上(以及我将字典传递给第4个参数的原始解决方案产生类似于此的HTML:

<a href="/EditRole?Comparer=System.Collections.Generic.GenericEqualityComparer%601%5BSystem.String%5D&amp;Count=1&amp;Keys=System.Collections.Generic.Dictionary%602%2BKeyCollection%5BSystem.String%2CSystem.String%5D&amp;Values=System.Collections.Generic.Dictionary%602%2BValueCollection%5BSystem.String%2CSystem.String%5D">EditDocumentRoles</a>
Run Code Online (Sandbox Code Playgroud)

即它使用反射和工作完全错误...

asp.net asp.net-mvc actionlink routevalues

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

Ajax.ActionLink不是POSTing

我试图通过POSTing而不是GETting导航到MVC动作.(该操作是DELETE,我不希望它通过外部链接访问.)

我在生成的网格中使用链接

 Ajax.ActionLink("Remove", "Delete", new { saID = Model.Said, id = e.id }, new AjaxOptions { HttpMethod = "POST", Confirm = "Are you sure you want to delete this item?" })
Run Code Online (Sandbox Code Playgroud)

这会生成以下HTML:

<a href="/Equipment/Delete/102424/229933" onclick="Sys.Mvc.AsyncHyperlink.handleClick(this, new Sys.UI.DomEvent(event), { insertionMode: Sys.Mvc.InsertionMode.replace, confirm: 'Are you sure you want to delete this item?', httpMethod: 'POST' });">Remove</a>
Run Code Online (Sandbox Code Playgroud)

我的问题是当我点击链接时,我通过GET而不是POST进入删除操作,并且没有发生确认对话框.我一直在谷歌搜索几个小时,只是不停地缠绕在轴上.我究竟做错了什么?

ajax model-view-controller actionlink

6
推荐指数
2
解决办法
4929
查看次数

使用Ajax.ActionLink执行正确的HTTP删除时出现问题

我正在尝试做的事情:尝试使用"正确的"HTTP删除删除记录.

控制器代码:

    [HttpDelete]
    public void DeleteRun(int RunId)
    {
        repository.RemoveEntry(RunId);

    }
Run Code Online (Sandbox Code Playgroud)

剃刀查看:

             @Ajax.ActionLink("Delete","DeleteRun",new {RunId = run.RunId},
                         new AjaxOptions() { Confirm = "Are you sure you want to delete this entry?",
                                            HttpMethod = "DELETE",
                                            OnComplete = string.Format("DeleteRunInTable({0})",run.RunId)

                         })
Run Code Online (Sandbox Code Playgroud)

Javascript(在单独的包含文件中):

   function DeleteRunInTable(RunId) {
       $("tr[data-runid=" + RunId).remove();
}
Run Code Online (Sandbox Code Playgroud)

链接actionlink方法正在创建:

 <a data-ajax="true" data-ajax-complete="DeleteRunInTable(11)" data-ajax-confirm="Are you sure you want to delete this entry?" data-ajax-method="DELETE" href="/Runs/Delete/11">Delete</a>
Run Code Online (Sandbox Code Playgroud)

不确定javascript部分是否有效但不担心它.试着一次迈出一步:).现在它只是像传统标签一样工作,当我点击链接时它只是做一个href的GET请求.当然我得到了404错误,因为我把[HTTPDelete]放在我的控制器上.我对Web开发很陌生,所以我确定在javascript或jquery中还有其他方法可以做同样的事情,但我只是在做我现在知道的事情.

ajax asp.net-mvc actionlink http-delete

6
推荐指数
1
解决办法
4059
查看次数

如何使用视图模型的属性创建ActionLink

我有一个带有Filter属性的ViewModel,它具有许多我用来过滤数据的属性

例:

class MyViewModel : IHasFilter
{
     public MyData[] Data { get; set; }
     public FilterViewModel Filter { get; set; }
}

class FilterViewModel
{
    public String MessageFilter { get; set; }
    //etc.
}
Run Code Online (Sandbox Code Playgroud)

这在使用我的视图时工作正常.我可以设置属性,Model.Filter并将它们传递给Controller.我现在要做的是创建一个ActionLink具有与上述格式一起使用的查询字符串.

我的View从上面生成的查询字符串如下所示:

http://localhost:51050/?Filter.MessageFilter=Stuff&Filter.OtherProp=MoreStuff
Run Code Online (Sandbox Code Playgroud)

我需要在网格中每行进入上面视图的不同视图中生成一个ActionLink.

我试过了:

Html.ActionLink(
    item.Message,
    "Index",
    "Home",
    new { Filter = new { MessageFilter = item.Message, }, },
    null);
Run Code Online (Sandbox Code Playgroud)

我也尝试将routeValues参数设置为:

new MyViewModel { Filter = new FilterViewModel { MessageFilter = item.Message, }, },
Run Code Online (Sandbox Code Playgroud)

但是这些不会像上面那样生成查询字符串.

asp.net-mvc actionlink model-binding asp.net-mvc-3

6
推荐指数
1
解决办法
3258
查看次数

如何使用Html.ActionLink传递多个参数(一些复杂的对象)

我在.net 4.0中使用MVC.我有一个基本的Html.ActionLink,我希望将多个参数传递给控制器​​/动作.

每次我调试ActionResult时,只有一个参数通过而另一个是null(取决于哪个是第一个).现在我知道我可以传递复杂的物体,因为我可以让"联盟"对象通过.但是,我不确定为什么我的参数中只有一个可以随时通过.

Code in View :(不要骚扰我ViewBag.我知道它不受欢迎.此外,联盟是一个复杂的对象)

@Html.ActionLink("Sort By WeeK", "Sort", "Schedule",
                 new { league = ViewBag.League, sortType = "Week" }, null)
Run Code Online (Sandbox Code Playgroud)

控制器中的代码:(这里没有惊喜)

public ActionResult Sort(League league, string sortType)
{
    //Do some stuff here
    return View("Schedule");
}
Run Code Online (Sandbox Code Playgroud)

我猜测答案将围绕路由.这让我想到了第二个问题.如何在不经常添加新maproutes的情况下使这种类型的ActionLink(动作/控制器/复杂和简单对象的集合)工作.是否有我可以添加的通用/通配符RouteMap,所以我不必经常在解剖学上将相同的路由映射添加到global.asax.或者我希望在我希望传递给Action的对象类型中有一些灵活性,所以我无法预定义确切的签名.

我看过很多关于这个主题的帖子,但没有一个回答我的问题.

asp.net-mvc actionlink razor

6
推荐指数
1
解决办法
6169
查看次数

MVC ActionLink如何指定text,actionname,controller和htmlattributes

我一直试图做一个像这样的动作链接:

<li>@Html.ActionLink("Home", "Index", "Invoice", new { id = "homelink" })</li>
Run Code Online (Sandbox Code Playgroud)

所以我拥有的是linkText,一个actionname,一个控制器名称和一个链接的id.

但是没有与之匹配的签名.最近的一个在控制器名称和htmlattributes之间具有路由值.我没有任何路线值,但我需要放在那里.

有人可以告诉我如何最好地解决这个问题吗?

asp.net-mvc actionlink

5
推荐指数
1
解决办法
2218
查看次数