2012-05-24 167 views
1

我是MVC的新手,請耐心等待。ASP.Net mvc Url.Action參數始終爲空

我想要做的是,在第1頁,用戶輸入值到兩個文本字段,並單擊提交按鈕,它會調用wcf服務,如果wcf調用返回驗證值,那麼它應該重定向到不同的頁面和顯示來自wcf調用的返回值。

我創建的視圖這樣的 - 用戶在文本框中的輸入值之後,一旦他點擊「檢查狀態」,我試圖將值傳遞給使用Url.Action控制器

 <input type="text" name="txtUniqueCode" value="@Model.UniqueCode" placeholder="unique identifier" /> 
      <label for="name"> 
       Vehicle Registration 
      </label> 
      <input type="text" name="txtRegistration" value="@Model.Registration" placeholder="Registration" /> 

      <a href="@Url.Action("ShowRepairDetails", "RepairDetails", new { uniqueCode = Model.UniqueCode, registration = Model.Registration })">Check Status</a> 

。但是當我調試並檢查控制器上的參數值時,它們會以空值的形式返回給我。我不確定爲什麼?

我試圖在url.Action中包含靜態值替換的參數值 -

@Url.Action("ShowRepairDetails", "RepairDetails", new { uniqueCode = 1234, registration = "Test" }) 

這是工作正常,我在控制器側正確地接收到的參數值。所以從我所瞭解的「Model」對象即使在用戶在文本框中輸入一些值後也沒有得到更新。我在這裏錯過了一些東西。能否請您幫助..

在此先感謝
西

回答

1

看來,你在這裏誤解了工作流程。代碼中的鏈接是在將頁面發送給客戶端之前由服務器計算的。它無法使用用戶稍後輸入到文本框中的值。要做到這一點,你需要一個帶有提交動作的表單,或者一個AJAX調用,用於提取HTML元素的值並將這些值發送回服務器。

+1

感謝您的回覆..所以這意味着當我們使用帶有url.action的A href時,它會首先直接發送到服務器進行處理,而不考慮值。剛纔我嘗試使用提交按鈕,它工作正常。我現在將嘗試使用Ajax選項.. – Sai