2013-01-17 84 views
0

我對ASP.NET MVC體系結構還是有點新手。我有一個數據編輯頁面,其中包含一個隱藏的輸入。在測試我的頁面後,'保存'按鈕沒有任何功能,經過一些調查發現這是客戶端驗證問題。ASP.NET MVC中隱藏輸入的客戶端驗證

註釋以下行中的頁之後:

@*@Html.HiddenFor(model => model.ID)*@ 

(其中ID是一個GUID),驗證和張貼的頁面。

從我記得,腳手架把這個代碼放到我的視圖中。我只需要知道如何解決這個問題,以便將ID字段正確地發送回控制器,並想知道爲什麼它沒有驗證。

這裏是我查看代碼:

@using (Html.BeginForm()) 
{ 
    @Html.ValidationSummary(true) 

    <fieldset> 

     <div class="object_basics"> 
     @Html.HiddenFor(model => model.ID) 

     <div class="editor-label"> 
      @Html.LabelFor(model => model.Title) 
     </div> 
     <div class="editor-field"> 
      @Html.EditorFor(model => model.Title) 
      @Html.ValidationMessageFor(model => model.Title) 
     </div> 


     <p> 
      <input type="submit" value="Save" /> 
     </p> 
    </fieldset> 

} 

回答

0

鑑於,更新來自:

@using (Html.BeginForm()) 

@using (Html.BeginForm(new{ID = model.ID})) 

刪除隱藏元素[@ Html.HiddenFor( model => model.ID)]。

在你的控制器,更新操作屬性類似下面

public ActionResult YourActionName(string ID, string Title) 

希望這回答了你的問題。

乾杯, 丹尼

+0

我還是很好奇,想知道爲什麼具有對模型的屬性的值是錯誤/ doesn't工作的一個隱藏的輸入。 –

+0

這沒有錯,如果使用上面的動作屬性,它仍然有效。我認爲urs失敗的原因是因爲Action期待ID屬性的整數類型。 – DannyM

1

您是否嘗試過增加驗證消息的ID?

@Html.ValidationMessageFor(model => model.ID) 
1

由於jQuery驗證忽略了所有隱藏的標籤,客戶端驗證隱藏字段不工作。
您必須定義HiddenRequiredValidator類來實現您的目標。

你可以閱讀的解決方案來解決這個問題Here