2016-03-15 153 views
-2

我正嘗試使用按鈕在我的控制器Client中調用兩種操作方法之一。這是一個簡單的CRUD風格的Web應用程序,但是根本沒有任何操作方法被調用(我設置了斷點)。我的HTML代碼如下:呼叫控制器MVC中按鈕的動作方法5

@if (Model == null || Model.ID == 0) 
{ 
    <span class="input-group-btn"><button class="btn btn-default" onclick="location.href = ''@Url.Action("AddClient", "Client")''"/>Add New Details</span> 
} 
else 
{ 
    <span class="input-group-btn"><button class="btn btn-default" onclick="location.href = ''@Url.Action("UpdateClient", "Client")''"/>Update Client Details</span> 
} 

我不想重新加載頁面,而寧願做到這一點,而不使用jQuery(如果可能)。

回答

3

你說你不想重新加載頁面,但可能你希望在調用服務器之後以某種方式更新頁面。

而不是一個按鈕的我一般使用的樣式就像一個按鈕,一個鏈接:

@Ajax.ActionLink("Add New Details", "AddClient", "Client", 
    new { /*action params*/ }, 
    new AjaxOptions() 
     { 
      Confirm = "Are you sure you want to add new details?", 
      HttpMethod = "POST", 
      OnComplete = "afterAddition()" 
     }, 
    new { @class = "btn btn-default" } 
) 
0

你在的地方,你location.href指定額外的單引號,除去那些如下圖所示,它應該打你動作的方法,

@if (Model == null || Model.ID == 0) 
{ 
    <span class="input-group-btn"><button class="btn btn-default" onclick="location.href = '@Url.Action("AddClient", "Client")'"/>Add New Details</span> 
} 
else 
{ 
    <span class="input-group-btn"><button class="btn btn-default" onclick="location.href = '@Url.Action("UpdateClient", "Client")'"/>Update Client Details</span> 
} 

如果你想要部分加載,你可以使用MVC的Ajax選項。