将id附加到actionlink jquery对话框

时间:2013-08-19 22:07:39

标签: jquery asp.net-mvc-4

这就是我要做的 the way I see it 我有一行具有打开按钮的项目,该按钮应打开一个对话框,其中包含该项目,但我无法正确发布该网址。 在将此图添加到此问题时,我看到了stackoverflow如何弹出一个对话框,这正是我需要做的。我的问题是我需要将网址设为/controller/action?id= (id being passed in),但我得到的网址是/controller/action?/7,或者如果我重写动作,我会/controller/action?/7如何摆脱斜线或正确发布?

ActionLink的

       @Html.ActionLink("Open", "AddItems", new { id = item.ID }, new { @id =
      "Itemdialog" })

的jQuery

  $('#dialog').dialog({
    autoOpen: false,
    width: 400,
    resizable: false,
    modal: true
});

$('#Itemdialog').on("click", function () {
    var url =  $(this).attr('href');
    $('#dialog').load(url, function () {
        $(this).dialog('open');
    });

    return false; 
});

控制器:

   public ActionResult AddItems(int id)
    {
        var TradeItem = from i in db.Items
                        where i.ID == id
                        select i;
        var results = TItem;


        return PartialView("_OpenItem", results); //need to open in dialog

    }

查看

    @model IEnumerable<Item>

<table>
  <tr>
    <th>
         @Html.DisplayNameFor(model => model.ID)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.user_id)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.item_name)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.item_description)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.item_code)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.dateAdded)
    </th>
    <th>
        @Html.DisplayNameFor(model => model.catId)
    </th>
    <th></th>
</tr>

@foreach (var item in Model) {

<tr>
    <td>
        @Html.DisplayFor(modelItem => item.ID)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.user_id)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.item_name)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.item_description)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.item_code)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.dateAdded)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.catId)
    </td>

</tr>
}

  </table>
   @Html.ActionLink(send to db )

1 个答案:

答案 0 :(得分:1)

您可以将routeValues留空,只需将查询字符串附加到结尾:

<a id="Itemdialog" href='@Url.Action("AddItems")?id=@item.ID'>Open</a>

我认为这是设置查询字符串的一种更直接的方法 - 使用routeValues意味着您希望根据路由定义构建URL。