这是我视图中的ASP MVC代码。它会触发控制器并传递assetId和relationshipContext:
@Html.ActionLink("Archive", "Archive", new { assetId = Model.ID, relationshipContext = assetTypeRelation.RelationshipContextID }, new { @class = "btn btn-mini btn-warning", id = "btnArchive" })
我想在这个HTML.ActionLink中使用Ajax,但有点困惑。这是我开始使用的jQuery。基本上我只需要这个actionlink就可以将assetId和relationshipContext传递给我的assetcontroller中的Archive方法。
$('#btnArchive').click(function(){
$.ajax({
url: '@Url.Action("Archive", "Archive")',
type: 'POST',
dataType: 'json',
data: {
assetId: $(this).attr("assetId"),
relationshipContext: $(this).attr("relationshipContext"),
},
success: function(){
alert("success")
},
error: function () {
alert("error")
},
});
答案 0 :(得分:1)
查看@ Ajax.ActionLink
http://msdn.microsoft.com/en-us/library/system.web.mvc.ajax.ajaxextensions.actionlink(v=vs.108).aspx
答案 1 :(得分:0)
您的AssetController操作方法是什么样的?我应该看起来像:
[HttpPost]
public ActionResult Archive(int assetId, string relationshipContext)
{
//do some work
return Content("true");
}
此外,您在@ Url.Action调用中调用了错误的Controller。您的View代码可能需要更改为
$('#btnArchive').click(function(){
$.ajax({
url: '@Url.Action("Archive", "Asset")',
type: 'POST',
dataType: 'json',
data: {
assetId: $(this).attr("assetId"),
relationshipContext: $(this).attr("relationshipContext"),
},
success: function(data){
alert(data)
},
error: function () {
alert("error")
},
});