1

我想提交表單,但按鈕不可點擊。經過一番搜索後,我發現這是由於ASP.NET MVC對必填字段進行了jquery驗證。 對於一些奇怪的原因ASP NET認爲我的隱藏字段「UserId」是必需的。這其實並不真實。看到這裏我的模型的一部分:ASP NET MVC 3:表單由於所需的隱藏字段而不POST POST

public class ResetPasswordModel 
    { 

     [.....] 

    public Guid UserId 
    { 
     get; 
     set; 
    } 

    } 

而且頁面的源代碼顯示了這一點:

<input data-val="true" data-val-required="The UserId field is required." id="UserId" name="UserId" type="hidden" value="" /> 

任何想法?!?

+0

您可以發佈UserId屬性代碼及其屬性。 – 2012-01-12 15:33:47

回答

0

您確定沒有包含MetaData的單獨部分類,它已將該字段標記爲必填字段嗎?

事情是這樣的:

class UserResetPasswordModelMetaData 
{ 
    [Required(ErrorMessage = "The UserId field is required.")] 
    public Guid UserId { get; set; } 
} 

搜索項目的string "The UserId field is required"。我敢打賭,它在那裏。

此外,如何識別試圖重置密碼的用戶,如果不是通過他們的ID?

+0

我不確定你是什麼意思的單獨類。這是通過電子郵件發送給特定用戶的頁面,所以我已經有了他的ID,我只是想將它傳遞給我的帖子操作,這就是爲什麼我有這個隱藏的領域。 – celticharp 2012-01-12 15:27:48

+0

是的,基於在問題中提供的代碼,它在我看來並不需要用戶ID字段。它沒有meta標記。你在視圖中使用Html.HiddeFor嗎?在將視圖模型呈現給頁面之前,您是否在視圖模型中設置了UserID的值? – 2012-01-12 15:29:06

+1

親愛的上帝。我很抱歉我的帖子。我剛剛看到我沒有將模型渲染到視圖中......啊,我無法相信它!!!!!!! ... – celticharp 2012-01-12 15:55:49

0

有可能是在UserID屬性之上的Key屬性,這意味着它是強制性

1

它不是可空類型意味着它需要的事實。將定義更改爲Guid? (包括問號以使其可以爲空)或者甚至更好地創建一個沒有它的視圖模型。

1

我相信Guid默認是必需的,因爲它不能爲空。 Guids通常是主鍵,因此使它們可爲空是有問題的。嘗試轉換您的guid ToString(),以便您可以在視圖中使用它,然後在控制器或模型中使用它之前回到Guid。您可能必須創建一個ViewModel才能執行此操作。