我并不完全理解ASP.NET ActionLinks的工作原理.我看到他们有OnSuccess和OnFailure的事件处理程序,但我找不到任何描述成功和失败如何确定的东西.
我正在构建一个ASP.NET MVC应用程序,在其中我有一个Ajax.ActionLink,允许我使用AJAX对项目进行"投票"......类似于Digg.Actionlink开始我的控制器和方法......一切都在这里工作正常.
在我的控制器中,我有逻辑检查此用户之前是否已投票.我想用"OnSuccess"和"OnFailure"来回应不同.我希望它运行我的Javascript函数"PlusOneVote",如果用户从未投票(这是OnSuccess场景),如果用户投票之前我想运行我的javascript函数"CheaterYouCantVoteTwice".
有人可以解释一下OnFailure和OnSuccess是如何衡量的吗?
有人可以解释我如何构建这个逻辑...我可以在一个分支中运行一个Javascript函数(在我的情况下,如果用户从未投票)和另一个Javascript函数在用户已经投票的情况下?
我目前正在尝试进行html提交,但是使用MVC辅助方法ActionLink,因为我不希望它是一个按钮,我希望它是一个带下划线的链接,就像我页面上的其余部分一样.这就是我目前所拥有的
<%= Html.ActionLink("Delete Selected", "DeleteCheckBox", "Domains", "Default.aspx", new { type="submit" }) %>
Run Code Online (Sandbox Code Playgroud)
这会跳回我的操作,但是所有已检出要删除的域都不会被发回.(如果我使用它,<input type="submit" name="DeleteAction" value="Delete" />
它工作正常,所以我知道提交或检索复选框没有问题)
这是我到目前为止所拥有的......
>"%>指数
<h2>Domain List</h2>
<h2 style="color: #FF0000"><%= Html.Encode(ViewData[IProwlAdminUI.Utils.Global.ExceptionMessageKey]) %></h2>
<h2 style="color: #FF0000"><%= Html.Encode(ViewData["Message"]) %></h2>
<% using (Html.BeginForm("DeleteCheckBox", "Domains"))
{ %>
<% if (ViewData.ContainsKey("DeleteMessage"))
{ %>
<h2 style="color: #FF0000"><%= Html.Encode(ViewData["DeleteMessage"]) %></h2>
<input type="submit" name="DeleteAction" value="Commit" /> <input type="reset" name="DeleteAction" value="Cancel" />
<% } %>
<p>
<%= Html.ActionLink("Create New", "Create") %>
| <%= Html.ActionLink("Export List", "Export") %>
| **<a href="javascript:void(0)" class="DeleteLink">Delete Selected</a>** …
Run Code Online (Sandbox Code Playgroud) 我为我的应用程序定义了以下路由:
routes.MapRoute(
"Referral", // Route name
"{referralCode}", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
routes.MapRoute(
"Default", // Route name
"{controller}/{action}", // URL with parameters
new { controller = "Home", action = "Index" } // Parameter defaults
);
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个ActionLink来继续我的AdminController上的Index操作:
@Html.ActionLink("admin", "Index", "Admin")
Run Code Online (Sandbox Code Playgroud)
但是,执行视图时,ActionLink呈现为(省略了索引操作值):
<a href="/Admin">admin</a>
Run Code Online (Sandbox Code Playgroud)
通常情况下这可以,但它会导致与"推荐"路线发生冲突.
注意:如果我使用ActionLink呈现不同的操作,如"默认",则ActionLink会正确呈现:
<a href="/Admin/Default">admin</a>
Run Code Online (Sandbox Code Playgroud)
"默认"操作正确呈现的事实使我相信问题与为路由指定的默认值有关.无论如何还要强制ActionLink呈现"索引"动作吗?
我有一个关于RouteLink与ActionLink的问题.
请考虑以下路线
routes.MapRoute("Routename1",
"{someEnum}/SpecificAction/{id}/{stringId}",
new { controller = "MyController", id = (int?)null, stringId= (string)null, action = "SpecificAction" },
new { someEnum= "(EnumVal1|EnumVal2)" }
);
Run Code Online (Sandbox Code Playgroud)
奇怪的{someEnum}部分是因为我对枚举的所有值使用通用控制器,它构成了url的典型控制器部分.例如,/ EnumVal1/Action /和/ EnumVal2/Action /使用相同的控制器.然而,这不是问题的一部分.
考虑以下两种链接方式:
<%=Html.RouteLink("Click me","Routename1", new { id = 32, stringId = "Yatzy" })%>
<%=Html.ActionLink("Click me", "SpecificAction", "EnumVal1", new { id = 32, stringId = "Yatsy" }, null)%>
Run Code Online (Sandbox Code Playgroud)
RouteLink生成正确的URL,即/ EnumVal1/SpecificAction/32/Yatzy
ActionLink生成一个类似于/ EnumVal1/SpecificAction/32的URL?stringId = Yatzy
为什么是这样?请有人向我解释一下.
我主要是出于搜索引擎优化的原因决定将"rel"添加到我的行动链接中,但我不确定我采用的方式是遵循"最佳做法".我只是创建了一个新的Extension方法,如下所示.
这是最好的方法吗?是否有应该在这种方法中修改的东西?
视图
<%= Html.ActionLink("Home", "Index", "Home")
.AddRel("me")
.AddTitle("Russell Solberg")
%>
Run Code Online (Sandbox Code Playgroud)
扩展方法
public static string AddRel(this string link, string rel)
{
var tempLink = link.Insert(link.IndexOf(">"), String.Format(" rel='{0}'", rel));
return tempLink;
}
public static string AddTitle(this string link, string title)
{
var tempLink = link.Insert(link.IndexOf(">"), String.Format(" title='{0}'", title));
return tempLink;
}
Run Code Online (Sandbox Code Playgroud) 我在html操作链接的webproject上有导航和许多链接.它们很难看下划线.我想插入一些带有名字的图像或玩动作风格链接.可能吗?怎么做?
感谢并保重,Ragims
我有一个ASP MVC 3网站,它有一个反馈表,应该要求SSL.
现在,我在名为"ContactUs"的控制器中有一个名为Feedback的操作,负责查看和处理反馈.
当我[RequireHttps]
在该操作上使用该属性时,它运行良好,并将URL更改为"https".但是,我注意到我页面中的所有链接现在都指向"https"!好像这个属性迫使路由引擎将相同的内容应用到所有链接!
当然,只有这个单一动作才需要SSL,其余所有动作都需要正常的http.
谁能告诉我如何解决这个问题?
我可以通过Ajax.ActionLink("获取客户","GetCustomers","客户")调用asp.net mvc控制器;
我可以使用Html.ActionLink和jquery ajax调用来做同样的事情.
区别在哪里?
我在工作asp.net mvc3.我有一个如下的动作链接:
@Html.ActionLink("Yes", "Admin", "Foo", null, new { @class = "link" })
Run Code Online (Sandbox Code Playgroud)
我如何修改这个以在https中创建一个与http相对的链接,因为我已经使用[RequireHttps]设置了我的控制器操作
如何在ActionLink按钮中放置图像而不是文本:
@Html.ActionLink("Edit-link", "Edit", new { id=use.userID })
Run Code Online (Sandbox Code Playgroud)
那么如何将文本"编辑链接"更改为图像?
谢谢你的想法.
actionlink ×10
asp.net-mvc ×9
c# ×4
ajax ×1
asp.net ×1
hyperlink ×1
image ×1
jquery ×1
requirehttps ×1
routes ×1