2011-02-04 32 views
19

Tôi có chế độ xem hiển thị một số dữ liệu từ mô hình. Tôi đã gửi nút mà onClick sự kiện nên thay đổi giá trị của mô hình và tôi vượt qua mô hình với các giá trị khác nhau nhưng giá trị của tôi trong TextBoxFor ở lại giống như họ đã tải trang. Làm thế nào tôi có thể thay đổi chúng?MVC - thay đổi giá trị của mô hình theo quan điểm trên bài đăng

+0

Nếu không có bất kỳ mã nguồn nó không thể đưa ra bất cứ câu trả lời – Tx3

Trả lời

39

Đó là cách người trợ giúp HTML hoạt động và theo thiết kế. Trước tiên, họ sẽ xem xét dữ liệu đã đăng và sau đó trong mô hình. Vì vậy, ví dụ nếu bạn có:

<% using (Html.BeginForm()) { %> 
    <%= Html.TextBoxFor(x => x.Name) %> 
    <input type="submit" value="OK" /> 
<% } %> 

mà bạn gửi bài đến các hành động sau đây:

[HttpPost] 
public ActionResult Index(SomeModel model) 
{ 
    model.Name = "some new name"; 
    return View(model); 
} 

khi xem được hiển thị lại giá trị cũ sẽ được sử dụng. Một cách giải quyết có thể là để loại bỏ các giá trị từ ModelState:

[HttpPost] 
public ActionResult Index(SomeModel model) 
{ 
    ModelState.Remove("Name"); 
    model.Name = "some new name"; 
    return View(model); 
} 
+0

thử nó trong một kịch bản rất giống nhau .. dường như không làm việc. Bất kỳ trợ giúp sẽ được đánh giá cao ở đây - http://stackoverflow.com/questions/12138552/trying-to-update-the-model-in-controller-to-avoid-validation –

+1

Hơn nữa để câu trả lời của Darin này hoạt động chính xác giống với MVC4 và Razor. – Bern

+4

Điều này đã giúp tôi rất nhiều, cảm ơn bạn! Đối với người đóng câu hỏi này: bạn cần phải biết những gì đang được hỏi ở đây trước khi đưa ra phán quyết của bạn cho dù câu hỏi này là giá trị bất cứ điều gì hay không !! – Kizz

Các vấn đề liên quan