这是我的解决方案,使用 Html.ActionLink() -
@Html.ActionLink("Menu Text", "Menu" ,"MenuItem", new { id = "MenuId" }, new { @id = "MenuId" })
然后说你有这样的图像控制 -
<img src="/Content/images/b7.png" id="b7"/>
然后你有一个简单的 JQuery 脚本以这种方式替换查询字符串 -
<script>
$(document).ready(function () {
$("#b7").click(function () {
$("#MenuId").attr("href","/MenuItem/Menu/" + this.id);
});
});
</script>
在上面的脚本中,当你点击图片元素时,它的 id (b7) 将被用来制定锚标签 url。所以现在当点击图像时,将使用 JQuery 将一个新的 url 分配给客户端的锚标记。所以最终的 url 应该是这样的 -
/MenuItem/Menu/b7
更新:根据您的评论,我将演示如何使用 JQUERY AJAX 发出带有参数的 GET 请求并将结果返回到 UI。
假设您有一个返回 Json 的控制器 -
public JsonResult GetJson(string MenuId)
{
List<string> urls = new List<string>();
urls.Add("https://google.com");
urls.Add("https://bing.com");
return Json(urls, JsonRequestBehavior.AllowGet);
}
然后您可以通过以下方式使用 JQuery Ajax 在按钮单击中调用此控制器操作。 在您的实现中,您应该获得该动态值而不是输入文本控件。出于演示目的,我使用输入文本来获取一个值并将其传递给控制器操作。
<input type="text" id="Menu" />
<a href="#" id="ClickMe">Click me</a>
<script src="~/Scripts/jquery-1.10.2.min.js"></script>
<script>
$(document).ready(function () {
$("#ClickMe").click(function () {
var o = new Object();
o.MenuId = $("#Menu").val();
jQuery.ajax({
type: "POST",
url: "@Url.Action("GetJson")",
dataType: "json",
contentType: "application/json; charset=utf-8",
data: JSON.stringify(o),
success: function (data) {ou parse data
// This is how we parse returned json string
$.each(data, function (i, item) {
alert(data[i]);
});
},
failure: function (errMsg) { alert(errMsg); }
});
});
});
</script>
当你运行代码时,你应该看到下面的视图 -
当您输入值并单击锚标记时 -
因此,您将得到所有解析的结果 -