私たちのソリューションではこれを毎日行っていますが、それはまったく問題ではありません。例として、モデルの 1 つを次に示します。
public class ClassifiedAd : BaseModel
{
[Key]
[Editable(false)]
public int? ClassifiedAdID { get; set; }
[Required(ErrorMessage = "Required!")]
public int? UserID { get; set; }
[Required(ErrorMessage = "Required!")]
public int? ClassifiedAdCategoryID { get; set; }
[Required(ErrorMessage = "Required!")]
[StringLength(15, ErrorMessage = "Limited to 15 characters!")]
[RegularExpression(RegularExpressions.USPhone, ErrorMessage = "Must be a valid phone number!")]
public string Phone { get; set; }
[Required(ErrorMessage = "Required!")]
[RegularExpression(RegularExpressions.SafeAlphaNumeric, ErrorMessage = "Only letters, numbers, dashes and underscores are allowed!")]
[StringLength(100, ErrorMessage = "Limited to 100 characters!")]
public string AddTitle { get; set; }
}
ご覧のとおり、すべてのモデル プロパティに null 許容型を使用しています。ただし、これにより、説明した問題は発生しません。私たちの見解では、次のとおりです。
@Html.HiddenFor(model => model.ClassifiedAdID)
@Html.HiddenFor(model => model.UserID)
すべてがマップされ、正常に動作します。何が問題の原因なのかはわかりませんが (それを理解するにはコード全体を確認する必要があります)、ここで他の可能性を検討する必要があると思います。どのバージョンの MVC を使用していますか?