使用asp.net mvc从Url获​​取Id的最佳方法是什么?

时间:2010-11-10 00:58:20

标签: jquery asp.net-mvc

我是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函数。

这是获取身份证的好方法,还是有更简洁的方式来做到这一点?

问候

科乔

2 个答案:

答案 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,你会看到。