2013-08-23 35 views
3

我有MVC 4應用程序。這裏是:
1. Model HashKey - 包含1個字符串鍵
2.模型ModelObjectA - 我的傳輸對象。
3. A類 - 根據請求生成唯一鍵,並將其與給定的ModelObjectA一起放入TempData中,並返回此唯一鍵。
4.控制器ControllerModelObjectA - 充當純控制器。
5.查看ShowAllModelObjectA - 查看頁面以顯示來自控制器的集合。MVC 4按鈕onClick即調用剃鬚刀功能

這是如何工作的。我有請求導航到ShowAllModelObjectA。控制器使用要傳輸的對象調用類A並將唯一鍵發送到ShowAllModelObjectA。該視圖調用方法來獲取(不是HttpGET)與從控制器接收到的密鑰對應的對象。這個對象的集合被接收,並且在@foreach循環中反彙編對象並把它們放在一個表中。與表中的對象一起還有3個按鈕,代表不同的功能(查看詳細信息,編輯,刪除)到相應的對象。

問題: 在每個object`s按鈕,我不得不使用@functions調用ClassA和發送的對象本身,而是僅在點擊後沒有對循環。

下面是一些代碼(我修改了名字:))

@functions{ 
    public string ButtonClicked(ModelObjectA object) 
    { 
     System.Diagnostics.Debug.WriteLine("in");// to check when the method is called 
     return "dae"; 
    } 
} 

The foreach loop: 

<table> 
      @foreach (ModelObjectA Object in ModelObjectACollection) 
      { 
      <tr> 
       <td> 
        @Html.DisplayFor(modelItem => Object.Name) 
       </td> 
       <td> 
        @Html.DisplayFor(modelItem => Object.Email) 
       </td> 
       <td> 
        <button type="button" id="details" value="@Object" onclick="hello(value);">Details</button> 
        <button type="button" value="@Object">Edit</button> 
        <button type="button" value="@Object">Delete</button> 
       </td> 
      </tr> 
      } 
    </table> 

<script type="text/javascript"> 
    function hello(Value) { 
     alert("Clicked"); 
    } 
</script> 

因爲現在我有機會獲得@ModelObjectA,但我不能將其發送到剃鬚刀的功能,因爲Java是在客戶端和剃刀在服務器上。

有沒有另一種方法來做到這一點?

編輯: 這裏是rentered按鈕:

<td> 

        <button type="button" id="details" value="(Project path).ModelObjectA" onclick="hello(value);">Details</button> 
        <button type="button" value="(Project path).ModelObjectA">Edit</button> 
        <button type="button" value="(Project path).ModelObjectA">Delete</button> 
       </td> 

編輯2:我不知道我需要使用履行這一要求。我很樂意提供建議。

+0

但是你的觀點獲得服務器端準備,您可以在您的視圖javascpit。傳遞給你的hello()函數的價值是什麼? –

+0

+0

請問您可以考慮爲您的問題提供不同的標題嗎? 「MVC 4個問題」太模糊了,不利於其他人從答案中獲益。 –

回答

6

通過您粘貼的代碼問題是您將類名稱放在值標記中。 嘗試是這樣的:

@foreach (ModelObjectA mObjA in ModelDealerCollection) 
{ 
    <tr> 
     <td> 
      @Html.DisplayFor(modelItem => ModelObjectA.Name) 
     </td> 
     <td> 
      @Html.DisplayFor(modelItem => ModelObjectA.Email) 
     </td> 
     <td> 
      <button type="button" id="details" value="@mObjA" onclick="hello(value);">Details</button> 
      <button type="button" value="@mObjA">Edit</button> 
      <button type="button" value="@mObjA">Delete</button> 
     </td> 
    </tr> 
} 
+0

是的,我看到了。我在考試中拼錯了它是@Object。我只是修復它。 –

+0

您可以在呈現HTML代碼時粘貼一個示例嗎?只需按鈕就足夠了。 – Martin

+0

我不能在家裏訪問公司的SQL Server,我必須模擬它。但我可以嘗試。 –