是否有任何方法在MVC4 ActionLink中调用一个RouteValue参数
asp.net mvc - Is there any way to call JavaScript in an MVC4 ActionLink for one of the RouteValue parameters?
我有一个下拉列表(DropDownListFor)和一个ActionLink在我的页面。基本上,我遇到的问题是我试图从下拉列表中捕获选定的值并将其作为ID传递给我的ActionLink。下面是我的代码:
@Html.DropDownListFor(x => x.Capsules, new SelectList(Model.Capsules, "pk", "name", "pk"))
<br />
@Html.ActionLink("Submit", "Create",
new { controller = "Process", id = /*JavaScript here to get the selected ID for the DropDownList above*/ },
new { data_role = "button" })
对于我想要完成的,是否有一种方法将JavaScript嵌入到我的Html中。ActionLink电话吗?如果没有办法,或者不推荐,您是否可以提供其他解决方案来解决这个问题?提前感谢!
你可以通过使用javascript拦截链接来做到这一点Darin已经发布了一个这样的例子。
然而,它看起来像你试图使用ActionLink提交一些值,你可能最好创建一个视图模型来保存你想要的所有值,然后使用提交按钮发布一切。这允许你发布比ID更多的数据,防止你依赖于Javascript,并保持所有的代码服务器端,而不是混合和匹配。
从你发布的小代码来看,你已经有了一个模型,可能是某种强类型实体,它有一个名为Capsules的属性。
在你的控制器中,创建保存视图数据的视图模型:
public class YourViewModel
{
YourModel YourModel { get; set; }
public int CapsuleId { get; set; }
}
你的视图:
@using( @Html.BeginForm( "Create", "Process" ) )
{
@Html.DropDownListFor(m=> m.CapsuleId, new SelectList(Model.YourModel.Capsules, "pk", "name", "pk"))
<input type="submit">
}
然后你的控制器动作来处理这个:
[HttpPost]
public ActionResult Create( YourViewModel model )
{
var id = model.CapsuleId;
// do what you're going to do with the id
return View();
}
您可以像这样为id
参数设置虚拟值:
@Html.ActionLink("Submit", "Create",
new { controller = "Process", id = "dummy" },
new { data_role = "button" })
然后在链接被点击时替换该值
// Assuming your link's id is `submit`, and the dropdown's id is `capsules`
$('#submit').click(function() {
var id = $('capsules').val();
$(this).href = $(this).href.replace('dummy', id);
});
相关文章:
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 为什么jQuery文件的函数中有两个参数,但只接收一个参数
- 如何将一个*参数*从JS传递到AS3
- 如何在mysql查询(NODE.js)中重复使用一个参数
- Meteor.js只更新一个参数,而不是整个集合
- 必应地图没有'当我向函数添加另一个参数时,t显示
- Function.prototype.call和Function.protoype.all只应用一个参数
- Javascript/jQuery获取所有url参数并添加/更改一个参数
- 将一个参数传递给另一个参数
- 我需要将一个参数从另一个任务传递给gullow任务,或者用runSequence调用的函数替换一个任务
- 将多字段html输入组合为一个参数并传递给javascript
- jQuery使用最后一个参数在Javascript循环中单击绑定函数
- 如果我传递一个参数,则不会调用javascript函数
- Javascript:在URL后面添加一个参数
- pass函数是JavaScript中的一个参数
- 在backbone.js中路由视图时传递一个参数
- bookmarklet在url中添加一个参数并重新提交
- 在nodejs中使用一个参数
- 通过删除一个参数及其值来清理 URL
- 使用 onClick 从 JavaScript 创建 html 按钮调用一个带有一个参数的方法