0

这是我认为的 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")
                      },

                  });
4

2 回答 2

1

看看@Ajax.ActionLink

http://msdn.microsoft.com/en-us/library/system.web.mvc.ajax.ajaxextensions.actionlink(v=vs.108).aspx

于 2013-02-28T21:41:13.297 回答
0

您的 AssetController 操作方法是什么样的?我应该看起来像:

[HttpPost]
public ActionResult Archive(int assetId, string relationshipContext)
{
     //do some work
     return Content("true");
}

此外,您在 @Url.Action 调用中调用了错误的控制器。您的查看代码可能需要更改为

$('#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")
                      },

                  });
于 2013-02-28T22:13:23.593 回答