在ASP.NET MVC的最新版本(RC1)中,如何将Html.ActionLink呈现为按钮或图像而不是链接?
假设我有一堂课
public class ItemController:Controller
{
public ActionResult Login(int id)
{
return View("Hi", id);
}
}
Run Code Online (Sandbox Code Playgroud)
在不在Item文件夹中的页面上ItemController
,我想创建一个指向该Login
方法的链接.那么Html.ActionLink
我应该使用哪种方法以及我应该传递哪些参数?
具体来说,我正在寻找替代方法
Html.ActionLink(article.Title,
new { controller = "Articles", action = "Details",
id = article.ArticleID })
Run Code Online (Sandbox Code Playgroud)
已经在最近的ASP.NET MVC化身中退役了.
我有两个问题:
Html.ActionLink()
在MVC视图中使用时我怎么能显示没有链接文本(实际上,这是Site.Master
).没有一个不允许链接文本的重载版本,当我尝试只传入一个空白时string
,编译器告诉我它需要一个非空字符串.
我怎样才能解决这个问题?
我需要<span>
在锚标记中放置标记,但它不能使用Html.ActionLink();
.我想看看以下输出:
跨文本
如何在ASP.NET MVC中将标记放在锚标记内?
我认为标题几乎总结了:
ASP.NET MVC RouteLink()
和ActionLink()
ASP.NET MVC有什么区别?
即你何时使用Html.RouteLink()
,何时Html.ActionLink()
在你的视图中使用?
我正在尝试实现一个ActionLink
使用ASP.NET MVC删除记录的简单方法.这是我到目前为止:
<%= Html.ActionLink("Delete",
"Delete",
new { id = item.storyId,
onclick = "return confirm('Are you sure?');"
})%>
Run Code Online (Sandbox Code Playgroud)
但是,它不会显示确认框.很明显我错过了一些东西,或者我错误地构建了链接.有人可以帮忙吗?
任何人都可以告诉我如何使用ActionLink和POST方法向Controller提交值?
我不想使用按钮.
我猜它有jquery的东西.
作品
<a href="@Url.Action("edit", "markets", new { id = 1 })"
data-rel="dialog" data-transition="pop" data-icon="gear" class="ui-btn-right">Edit</a>
Run Code Online (Sandbox Code Playgroud)
不工作 - 为什么?
@Html.ActionLink("Edit", "edit", "markets", new { id = 1 }, new {@class="ui-btn-right", data-icon="gear"})
Run Code Online (Sandbox Code Playgroud)
看来你不能把像data-icon ="gear"这样的东西传递给htmlAttributes?
建议?
我在视图中有以下ActionLink
<%= Html.ActionLink("LinkText", "Action", "Controller"); %>
Run Code Online (Sandbox Code Playgroud)
并创建以下URL http://mywebsite.com/Controller/Action
假设我在最后添加一个ID,如下所示:http://mywebsite.com/Controller/Action/53并导航到该页面.在这个页面上,我有上面指定的标记.现在,当我查看它创建的URL时,它看起来像这样:
http://mywebsite.com/Controller/Action/53(注意添加ID)
但我希望它删除ID并看起来像它原来的那样,如http://mywebsite.com/Controller/Action(此处没有注释ID)
我有什么想法可以解决这个问题?我不想使用硬编码的URL,因为我的控制器/操作可能会改变.
尝试使用AJAX操作链接,在单击时,应该执行一个HttpGet
操作方法,该方法返回PartialViewResult
并将HTML推送到div中.
这是我的观点:
<div id="admin-options" class="admin"></div>
@Ajax.ActionLink("Show Admin Options", "ShowOptions", "Post", new { area = "Admin" }, new AjaxOptions { UpdateTargetId = "admin-options", HttpMethod = "GET" })
Run Code Online (Sandbox Code Playgroud)
这是动作方法:
public class PostController : Controller
{
[HttpGet]
[Authorize(Roles="Admin")]
public PartialViewResult ShowOptions()
{
return PartialView();
}
}
Run Code Online (Sandbox Code Playgroud)
这是它生成的HTML:
<a data-ajax="true" data-ajax-method="GET" data-ajax-mode="replace" data-ajax-update="#admin-options" href="/Admin/Post/ShowOptions">Show Admin Options</a>
Run Code Online (Sandbox Code Playgroud)
看起来很好.
但它不是进行AJAX调用,而是通过浏览器URL进行常规HTTP GET,并重定向到/ Admin/Post/ShowOptions.
显然我错过了什么 - 但是什么?
我有一个返回数组(string [])的方法,我试图将这个字符串数组传递给一个Action Link,这样它就会创建一个类似于的查询字符串:
/Controller/Action?str=val1&str=val2&str=val3...etc
Run Code Online (Sandbox Code Playgroud)
但是当我传递新的{str = GetStringArray()}时,我得到以下网址:
/Controller/Action?str=System.String%5B%5D
Run Code Online (Sandbox Code Playgroud)
所以基本上它采用我的字符串[]并在其上运行.ToString()来获取值.
有任何想法吗?谢谢!
actionlink ×10
asp.net-mvc ×10
.net ×3
c# ×2
html-helper ×2
ajax ×1
arrays ×1
razor ×1
routelink ×1
routes ×1