这是我目前的脚本 -
<script type="text/javascript">
$(document).ready(function () {
$('.RemoveSystem').click(function () {
var href = $(this).attr('href');
var answer = confirm("Are you sure you want to delete this system?");
alert(answer);
if (answer)
window.location = href;
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
这是每个记录的链接,我们可以在点击删除按钮时删除每个系统 -
<%= Html.ActionLink("Delete", "RemoveSystem", new { SysNum = item.Id}, new { @class = "RemoveSystem" })%>
Run Code Online (Sandbox Code Playgroud)
现在这里是actionlink重定向的问题,无论发生什么,我需要阻止它.我的意思是说用户按下取消确认动作链接仍然执行并转到RemoveSystem动作,我希望它只留在页面上.我想使用HTML超链接但我不知道我应该如何将id传递给id那种情况下的javascript.有人可以帮帮我吗?
例如,我在视图中有以下操作链接 /Shows/Details/1
<%= Html.ActionLink(item.venue, "Details", "Venues", new { name = item.venue }) %>
这会显示正在播放该节目的场地的名称,但是我需要它来链接到Venue而不是显示控制器,因为它创建的URL是/Shows/Details?Length=6它需要去的时间/Venues/Details?Name=VenueName
Venues控制器的名称是VenuesController.
谢谢
这是我的方法:
$(document).ready(function () {
$('td.clickableCell').click(function () {
var currentObject = null;
currentObject = $(this).text();
@Html.ActionLink("GetThis", "Get", new {theName = currentObject} )
});
});
Run Code Online (Sandbox Code Playgroud)
但它表示currentObject在当前上下文中不存在.怎么解决这个?
这是我要更新的地方:
<div style="text-align: center;" id="vote_count">@Html.DisplayFor(q => q.VoteCount)</div>
Run Code Online (Sandbox Code Playgroud)
这是我的actionLink:
@Ajax.ActionLink("Upvote", "Upvote", "Author", new { QuestionID = Model.QuestionID, @class = "upvote" },
new AjaxOptions
{
InsertionMode = InsertionMode.Replace,
UpdateTargetId = "vote_count",
OnBegin = "onBegin",
OnComplete = "onComplete",
OnSuccess = "onSuccess",
OnFailure = "onFailure"
})
Run Code Online (Sandbox Code Playgroud)
这是我的一个控制器:
public int Upvote(Guid QuestionID)
{
if ()
{
//I want to send error message
}
else
{
//I want to send an integer
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是:我想在我的视图页面上发送错误消息或整数来显示它.我该怎么做?根据您推荐的建议,我可以更改所有代码.
谢谢.
目前,我有一堆div元素如下所示:
<div onclick="window.open('Technology','mywindow');" class="grid" id="technology">
<p class="category-title">Technology</p>
</div>
Run Code Online (Sandbox Code Playgroud)
我想摆脱window.open,而是使用MVC htmlhelper(例如actionlink)在用户单击div元素时重定向用户。我怎样才能做到这一点?
我试图在我的上面都有一些路由值和html属性ActionLink.
所以,我有以下代码.前三个参数是文本,动作名称和控制器.然后我添加路由值,然后尝试添加HTML属性.
@Html.ActionLink("What is this", "Pages", "Root", new { @slug = "what-is-this" },new{@class="dropdown-toggle", @data-toggle="dropdown"})
Run Code Online (Sandbox Code Playgroud)
当我运行网站时,我收到一条错误消息,说明使用此actionlink的视图,它给出了 External component has thrown an exception.
所以,我想我的问题是:如何将html属性添加到此操作链接?我究竟做错了什么?
我有一个关于来自视图的调用方法的问题.
基本上我的观点我有2个链接:
1链接:当我点击它时,应该调用并执行一些方法,但是网页上什么都不应该改变,所以没有回发.
2链接:当我点击它时,某些方法应该发生并且可以在同一页面上进行回发
在控制器我有:
public ActionResult FirstMethod(){ return View();}
public ActionResult SecondMethod(){ return View();}
Run Code Online (Sandbox Code Playgroud)
在视图中:
@Html.ActionLink("Action 1", "FirstMethod", "Controller");
@Html.ActionLink("Action 2", "SecondMethod", "Controller");
Run Code Online (Sandbox Code Playgroud)
所以,当我点击这两个动作发生但后来我得到一个错误说找不到FirstMethod.chtml ..
那么这可能有一种方法有回发而另一种方法没有?以及如何返回同一页面...而不是尝试获取FirstMethod.chtml ..
我正在使用actionlink将参数"code"传递给项目的控制器,并在新视图上获取该项目的详细信息(实际上,它是调用3个部分视图的控制器)
我还需要传递参数"description",但这只是一个需要在新视图中显示的值,并且在控制器中没有用(我使用"代码"来过滤数据库记录).
@foreach (var item in Model.MyModel)
{
<tr>
<td>
@Html.ActionLink(item.code, "Index", "ControlerName", new { pos = item.code.ToString(), desc = item.desc.ToString() }, null)
</td>
Run Code Online (Sandbox Code Playgroud)
}
这个actionlink给我url/ControlerName?pos = code&desc = desc
有没有办法发送"desc"参数,所以它不会在网址中看到,但只显示在新视图中?
@{(int)Session["current"] == 1 ? Html.ActionLink("Home", "Index", "Home", new { @class = "selected" }) : Html.ActionLink("Home", "Index", "Home");}
Run Code Online (Sandbox Code Playgroud)
当我使用这段代码时,我收到一个错误:CS0201:只有赋值,调用,递增,递减,等待和新对象表达式才能用作语句
我不认为";" 应该是在最后,但没有它我得到一个错误说它丢失了.我已经尝试使用<%=%>语法,但这也不起作用.
我在MVC 4应用程序中创建了一个Admin区域.在被调用的Views文件夹下UserManage,我使用Grid.MVC在多个页面上列出用户(5个集合).在网格中,我列出了供管理员查看的用户详细信息,并添加了:
EDIT链接的列.CREATE按钮.DELETE按钮(与每行的复选框一起使用).我的用户详细信息页面位于我的管理区域中,位于以下路径中:Project\Areas\Admin\Views\UserManage\Index.cshtml.在我的EDITliniks上,我试图拉出视图Project\Areas\Admin\Views\UserManage\Edit.cshtml并将个人传递UserID给View以提取用户数据.
在我下面的当前代码中,我的浏览器解析为http://localhost:62517/Admin/UserManage/Edit?Length=4IIS 8.0 404错误(控制器无法找到UserID).但是如果我手动更改Length到Id如下,一切都会按计划,我结束了我的Edit观点:http://localhost:62517/Admin/UserManage/Edit?Id=4.
这是我的Index.cshtml页面网格代码.有没有人知道我需要修改什么,Html.ActionLink()所以我的路线将解决?Id=而不是?Length=?:
<div class="overflowPrevention">
@Html.Grid(Model).Columns(columns =>
{
columns.Add().Encoded(false).Sanitized(false).SetWidth(30).RenderValueAs(o => @Html.CheckBox("checked", false));
columns.Add().Encoded(false).Sanitized(false).RenderValueAs(o => Html.ActionLink("Edit", "Edit", "Edit", new { id = "1" }));
}).AutoGenerateColumns()
</div>
Run Code Online (Sandbox Code Playgroud) actionlink ×10
asp.net-mvc ×9
razor ×3
c# ×2
asp.net-ajax ×1
html-helper ×1
javascript ×1
jquery ×1
popup ×1
postback ×1
shorthand-if ×1