2017-08-29 150 views
1

我有谷歌,并尝试了很多不同的解决方案来解决这个问题,他们都没有工作。这是我得到的。我试着通过一个Action Link和一个锚标签。尝试从ActionResult中的网址获取它。这种定位的标签产生正确的URL将AngularJS参数传递给ActionResult方法

HTML

<a class="link btn btn-default" ng-href="@Url.Action("CloseProject", "Home")?id={{item.ID}}">@Resource.CloseProjectButton</a> 

C#

public ActionResult CloseProject() 
    { 
     Guid id = new Guid(Request["id"]); 

      _fastaSamarbetenRepo.UpdatePropertyBagItemStatusToClosed(id); 

     return RedirectToAction("Projekt"); 
    } 

我究竟做错了什么?

+0

我建议使用HttpPost动作来更新数据的任何代码。 – Shyju

+0

你的问题具体是什么?如果您的网址正确生成缺少什么? – Shyju

+0

该网址看起来正确。但从来没有击中控制器。我还没有能够调试。这真的很糟糕。我遇到了不附加到项目的SharePoint调试器的问题。 – AllramEst

回答

1

您应该通过new关键字通过parameter

@{ 
var url = Url.Action("CloseProject", "Home", new { id = "{{item.ID}}"}); 
url = HttpUtility.UrlDecode(url); 
} 

并使用data-ng-href

<a class="link btn btn-default" data-ng-href="@url">@Resource.CloseProjectButton</a> 
+1

Thanx。得到了调试器工作分秒,事实证明,控制器获得GUID。问题在别处所以谢谢先生! – AllramEst