我將模型傳遞給視圖,然後我想在視圖中更改user.BannEndDate並將其發送回控制器。 無論我用user.BannEndDate ActionLink做什麼,都會傳遞由到達模型設置的值。任何人都可以幫助我嗎?MVC EditorFor日期不更新foreach循環中的子屬性
[產品型號]
[DataType(DataType.Date)]
public DateTime? BannEndDate { get; set; }
[查看]
@foreach (var user in Model.Users)
{
@Html.ActionLink("Bann", "BannUser", "Account", new { userId = user.Id, bann = true, bannEndDate = user.BannEndDate} , null)
@Html.EditorFor(u => user.BannEndDate)
}
[控制器]
public ActionResult BannUser(string userId, bool bann, DateTime? bannEndDate){}
這是預期的行爲,因爲'ActionLink'呈現而'user.BannEndDate'是之前的值。這就像ASP.NET MVC這樣的服務器端框架的本質。如果您想將其發送回服務器,請將其放在表單中並提交。如果你想'ActionLink'在客戶端更新,你需要使用客戶端代碼。換句話說,JavaScript。關於如何在Stack Overflow上做這個問題有很多問題。 –
好的,我認爲editorfor也會更新客戶端的價值。謝謝你的回答 – chrisk
而不是使用'ActionLink()'只是用'FormMethod.Get'的形式,它會將文本框的值回發給你的GET方法(不需要JavaScript) –