我是Jquery和Asp.Net MVC的新手。 我正在尝试传递ID参数
从一个页面上的ActionLink到jQuery函数。 然后将此Id传递给控制器,该控制器返回在模式对话框中呈现的结果集。
在Jquery函数中从ActionLink捕获Id参数的最佳方法是什么? 请注意,有几个操作链接分配了不同的ID。
这是我的行动链接:
<%=Html.ActionLink("View", "GetDetailsById", new { id = x.ProductId }, new { @class = "view",@productId= x.ProductId })%>
以下是我的jquery函数。
$(function () {
var _id;
$(".view").click(function () {
// Get the ID value of this button.
_id = $(this).attr('productId');
// Initialize the dialog and call the next function
// to get the data.
$("#dialog-message").dialog('open');
return false;
});
$(function () {
var _id;
$(".view").click(function () {
// Get the ID value of this button.
_id = $(this).attr('productId');
// Initialize the dialog and call the next function
// to get the data.
$("#dialog-message").dialog('open');
return false;
});
注意我通过向actionlink添加自定义属性来实现此功能 - @ productId。然后我使用jquery抓取值,如下所示:
$(".view").click(function () {
// Get the ID value of this button.
_id = $(this).attr('productId');
将此Id传递给调用控制器中方法的jquery函数。
这是获取身份证的好方法,还是有更简洁的方式来做到这一点?
问候
科乔
答案 0 :(得分:0)
您可以通过在html属性参数中指定id
,将productId分配给生成的html元素的Id:
new { @class = "view", id = x.ProductId }
然后,您可以使用productId
以相同的方式获取生成的id
标记的<a>
,而不是使用$(this).attr("id")
属性。
我建议使用productId
,因为id
是有效的HTML。
所以,你的代码最终看起来像这样:
<%=Html.ActionLink("View", "GetDetailsById", new { id = x.ProductId }, new { @class = "view", id = x.ProductId })%>
会生成ID为<a>
的{{1}}。然后你的jQuery看起来像这样:
productId
答案 1 :(得分:0)
我会将id传递给视图模型,然后手动将值插入javascript变量
<script type="text/javascript">
var id = '<% ViewData["theid"] %>';
</script>
这与stackoverflow在其代码中使用的技术相同。继续看看他们的HTML,你会看到。