2017-04-11 36 views
0

我有與facebook組相同的視圖。如果用戶當前未加入羣組,則顯示JOIN按鈕。 我用這條線從按鈕動作鏈接當前沒有指向MVC中的控制器動作

<button>@Html.ActionLink("Join", "joinCommunity", new { id = @Model.Community.CommunityID })</button> 

調用joinCommunity()行動,但它沒有引導至joinCommunity在我的控制器()動作。 這裏是我在控制器中的功能。

[HttpPost] 
    public ActionResult joinCommunity(int CommID) 
    { 
     var UseriD = db.Users.Where(u => u.UserName == User.Identity.Name).SingleOrDefault().Id; 
     var newUser = new CommunityUser() 
     { 
      UserID = UseriD, 
      CommunityID = CommID 
     }; 
     db.CommunityUsers.Add(newUser); 
     db.SaveChanges(); 
     return View("Community"); 
    } 

我沒有得到(斷點)命中這個函數。

+0

斷點在哪裏? 您與參數名稱Id和CommId不匹配。 您正在使用...... beginForm? – AntDC

回答

0

您的動作的類型爲[HttpPost]。但是ActionLink會創建用於[HttpGet]<a>元素。

嘗試刪除[HttpPost]

但是,如果該特定操作用於發佈目的,請將該屬性留在那裏併爲[HttpGet]創建另一個操作。

如果你想發佈數據,沒有得到,請不要使用ActionLink。添加一個這樣的表格:

@using (Html.BeginForm("joinCommunity", "[CONTROLLER_NAME]", FormMethod.Post)) 
{ 
    <input type="hidden" name="CommID" value="@Model.Community.CommunityID" /> 
    <br/> 
    <input type="submit" value="Join" /> 

} 
+0

謝謝你..這工作 –

+0

@UzairNadeem我很高興,如果這個工作。您應該在某個時候檢查HTTP請求類型。這是Web應用程序的基礎,而不是Asp.Net。此外,你最好把這個帖子標記爲更多訪問者的好處的答案。 –

相關問題