我有一个javascript方法onRowSelected
wchich得到了rowid。如何使用HttpGet
?
function onRowSelected(rowid, status) {
alert('This row has id: ' + rowid);
//url: @Action.Url("Action","Controller")
//post:"GET"
// Something like this?
}
答案 0 :(得分:44)
如果您的控制器操作需要id查询字符串参数:
var url = '@Url.Action("Action", "Controller")?id=' + rowid;
或者如果你想将它作为路线的一部分传递,你可以使用替换:
var url = '@Url.Action("Action", "Controller", new { id = "_id_" })'
.replace('_id_', rowid);
如果要发送AJAX请求,另一种可能性是将其作为POST正文的一部分传递:
$.ajax({
url: '@Url.Action("Action", "Controller")',
type: 'POST',
data: { id: rowid },
success: function(result) {
}
});
或作为查询字符串参数,如果您使用GET:
$.ajax({
url: '@Url.Action("Action", "Controller")',
type: 'GET',
data: { id: rowid },
success: function(result) {
}
});
所有这些都假设您的控制器操作当然采用了id参数:
public ActionResult Action(string id)
{
...
}
因此,您可以看到许多方法来实现相同的目标。
答案 1 :(得分:0)
Darin的方法可以很好且完美地工作。
我建议在jsp中使用@Html.actionlink
使用Razor视图的另一种方法来使用模型值
var URLvalue='@Html.ActionLink("UserString", "action", new { routeValueName1 = "__value1__", routeValueName2="__value2__" }, htmlAttributes: new { @class = "btn btn-default", @role = "button" })'
.replace('__value1__', Model.somevalue).replace('__value2__', Model.somevalue);
您可以在jsp或jquery中的任何位置使用URLvalue。