1

我有一个通过ActionResult调用呈现的页面,该调用EntityIndexint id其作为参数并加载该实体。

在此视图中,用户可以从下拉列表中选择其他相关实体,并且应通过将下拉列表中的选定 ID 发送到EntityIndex带有新ID.

我在下拉列表中使用 jQuery 更改事件来导航和重新加载页面:

$("#RelatedEntity").change(function () {
    window.location = '@Url.Action("EntityIndex", new {id = ""})' + '/' + $(this).val();
});

这是行动

public ActionResult EntityIndex(int id) {
    ... gets entity by id here ...
    return View(model);
}

击中时该操作工作正常,但上面的 jQuery 行失败并出现错误:

http://localhost:1798/Entity/EntityIndex/@Url.Action("EntityIndex", new {id = ""})/539

出于某种原因,window.location触发将@Url.Action操作视为字符串而不是导航到的操作......有什么问题Url.Action导致它无法正常运行?

4

1 回答 1

5

你的 JQuery 有点偏离。使用默认路由并不指定 ID 将生成:

/控制器/动作/

所以你需要做的就是把你的价值放在最后。试试这个:

$("#RelatedEntity").change(function () {
    window.location = '@Url.Action("EntityIndex")' + $(this).val();
});

应该给你(假设值为23):

/控制器/动作/23

于 2012-05-22T16:41:39.043 回答