2012-06-04 142 views
0

我有一個鏈接巫婆我想喲改變成一個按鈕,鏈接通過,雖然參數和外觀如下:有沒有辦法通過按鈕發送參數?

@Html.ActionLink("View", "Print", new { id = item.SalesContractId }) 

我現在想用這個參數{ID的一個按鈕來取代它= item.SalesContractId}

我的按鈕,如下所示:

<input type="button" value="Print" id="btnFromIndexPrint" /> 

有人能告訴我如何我CA去這樣做?

這是我的頁面的外觀,所以你可以看到我嘗試才達到:

@model IEnumerable<Contract.Models.tbSalesContract> 


<!DOCTYPE html> 

<html> 
<head> 
    <title>Index</title> 
</head> 
<body> 
    <p> 
     @Html.ActionLink("Create New", "Edit") 
    </p> 
    <table> 
     <tr>    
      <th> 
       Company 
      </th> 
      <th> 
       Trading As 
      </th> 
      <th> 
       Created 
      </th>   
      <th> 
       Updated 
      </th> 
      <th></th> 
     </tr> 

    @foreach (var item in Model) { 
     <tr>      
      <td> 
       @Html.DisplayFor(modelItem => item.CompanyName) 
      </td> 
      <td> 
       @Html.DisplayFor(modelItem => item.TradingAs) 
      </td> 
      <td> 
       @Html.DisplayFor(modelItem => item.C_date) 
      </td> 
      <td> 
       @Html.DisplayFor(modelItem => item.C_updateDate) 
      </td> 
      <td> 
       @* @Html.ActionLink("View", "Edit", new { id = item.SalesContractId }) *@ 
       <input type="button" value="View" id="btnFromIndexView" /> 

      <td> 
      @* Add Button to print only if contract state is finalized *@ 
      @if (item.IsFinal) 
      { 
       @Html.ActionLink("Print", "Print", new { id = item.SalesContractId }) 
       <input type="button" value="Print" id="btnFromIndexPrint" /> 

      } 
      </td> 
      </td> 
     </tr> 
    } 

    </table> 
</body> 
</html> 
+0

您是否試圖檢測服務器上的ID或通過某些客戶端腳本? –

回答

2

如果你看看你的ActionLink產生的源代碼,你會看到這是隻是一個普通的超鏈接。 id參數會附加到您的網址中。

因此,用按鈕替換您的超鏈接將不會相同。

在ASP.NET MVC中,數據可以通過多種方式發送到您的服務器。 ActionLink使用的是將數據附加到URL。路由機制將把這些映射到Action方法的特定屬性。

發送數據的另一種方法是使用HTML表單。表單可以有一個提交按鈕,然後將表單數據發送到您的服務器。

  1. 以前綁定的動作參數,當動作是孩子 行動
  2. 表單域(要求:

    搜索時可能的值,你的操作方法ASP.NET MVC將檢查以下源。形式)

  3. 在JSON請求主體(Request.InputStream)的特性值,但僅當該請求是一個AJAX請求
  4. 路線數據(RouteData.Values)
  5. 查詢字符串參數(的Request.QueryString)
  6. 發佈文件(Request.Files)
+0

所以你不能通過一個按鈕發送參數? – Pomster

+0

如果你看看我的源代碼,你是否可以通過可能的方式實現我的目標? – Pomster

+0

@Pomster如果你不清楚按鈕和超鏈接之間的區別,那麼你真的需要做一些研究。使用Html.ActionLink,你不會「傳遞數據」給任何東西。瀏覽器正在輸出一個超鏈接,將瀏覽器重定向到另一個頁面(路由)。一個按鈕完全不像一個超鏈接,所以你的問題沒有任何意義。您可以添加在點擊按鈕時重定向的JavaScript,但這不完全相同。 – Dismissile

1

爲什麼要使用按鈕,而不是鏈接?如果你擔心外觀和感覺,那麼你可以應用一些CSS,並使鏈接看起來像按鈕。

超鏈接(<a>)是爲了在網頁之間形成連接而創建的鏈接。我建議你在你的案例中使用超鏈接而不是按鈕。如果你想使用JavaScript做一些客戶端操作,按鈕(除了提交)是很好的。

如果你仍然想使用按鈕,那麼你必須依靠一些JavaScript來調用控制器操作。

+0

+1簡單往往是(最佳)解決方案。 – EdSF

+0

我正在使用jQuery來調用控制器操作。 – Pomster

相關問題