0
從數據庫更新的屬性我有一個put方法在我MVC4的Web API是這樣的:不包括使用實體框架
public HttpResponseMessage PutUser(int id, User user)
{
if(!Modelstate.IsValid)
{
return Request.CreateErrorResponse(HttpStatusCode.BadRequest, "Modelstate invalid");
}
// etc...
}
我的用戶模型是這樣的:
public Class User
{
public int ID { get; set; }
public string Password {
set
{
PasswordHash = HashPassword(value);
}
}
[Required]
public string PasswordHash { get; set; }
}
現在當我調用我的put方法時,我的Modelstate無效,因爲我的PasswordHash沒有設置。我不想更新密碼,所以很自然,我沒有設置它。如何讓我的模型狀態有效並且不更新密碼哈希字段?我試着用綁定(排除)排除它,我試圖用同樣的方法包含它。
爲什麼它有'Required'屬性呢? –
因爲它在數據庫中是必需的。 –
好的,然後創建一個'UserViewModel',只要你在視圖中需要除了'PasswordHash'就可以了。將它傳遞給視圖,當你在控制器中接收到它時,就像你現在正在做的那樣,然後將'ViewModel'映射到你的用戶''User'中的實際'Entity'。保存它,你就完成了。 –