Tôi đã tạo một khung nhìn một phần trong ứng dụng MVC 3. Quan điểm này có một mô hình mạnh mẽ gõ như thế này:ASP.NET MVC PartialView không phát ra đánh dấu xác nhận
public class ProductViewModel
{
[Required, Display(Name = "Product price")]
public decimal? ProductPrice
{
get;
set;
} ...
}
Trong phương pháp hành động của tôi, tôi gọi phương thức PartialView như thế này
PartialView("ProductViewModel", products[0]);
Nhưng trên trang Tôi không thể nhìn thấy bất kỳ đánh dấu cho logic xác nhận tuy nhiên và không có gì xảy ra nếu có bất kỳ lỗi nào trên trang. Nếu tôi sử dụng chế độ xem một phần này làm mẫu trình chỉnh sửa, nó hoạt động. Bất kỳ trợ giúp nào được đánh giá cao.
Chỉnh sửa: Để cụ thể hơn, tôi có biểu mẫu HTML và tôi muốn thêm đánh dấu vào nó qua cập nhật ajax (nếu người dùng lần nhấp vào nút, tôi muốn thêm đánh dấu mới vào biểu mẫu đó). Nếu tôi bao gồm các điều khiển tĩnh, tôi có nghĩa là nếu tôi hiển thị chúng khi trang được tải, xác thực hoạt động nhưng nếu tôi thêm điều khiển vào biểu mẫu đó bằng cuộc gọi ajax, không có đánh dấu xác thực nào được chèn cho các điều khiển đó. xem một phần của tôi trông như thế này:
@Html.LabelFor(x => x.ProductPrice)
@Html.TextBoxFor(x => x.ProductPrice)
@Html.ValidationMessageFor(x => x.ProductPrice)
dạng của tôi trông như thế này:
@using (Html.BeginForm())
{
<div id="div_Products">
@Html.EditorFor(x => x)
</div>
<input type="submit" value="Compare" />
}
Đoạn mã trên hoạt động tốt, xác nhận hoạt động. Về phía máy chủ tôi gọi một phương pháp hành động trông giống như:
[HttpPost]
public ActionResult InsertProduct()
{
var newProductVM = new ProductViewModel{ ProductPrice = 789 };
return PartialView("~/Views/Nutrition/EditorTemplates/ProductViewModel.cshtml", newProductVM);
}
tôi đã tìm ra rằng động cơ MVC chèn những đánh dấu xác nhận chỉ khi nó phát hiện ra rằng các điều khiển đang ở trong một điều khiển form. Khi tôi cố gắng cập nhật điều khiển biểu mẫu của tôi thông qua một cuộc gọi ajax, MVC không có cách nào để biết rằng chúng sẽ được đặt bên trong một phần tử biểu mẫu và đó là lý do tại sao nó không phát ra bất kỳ logic xác nhận nào cho chúng.
Có nghĩa là một trình soạn thảo "phát ra" lỗi xác thực và như vậy, và chế độ xem thì không. Chúng tôi có thể xem mã cho chế độ xem của bạn không? – rfmodulator
Vấn đề là MVC chèn đánh dấu xác thực chỉ khi nó thấy rằng các điều khiển nằm bên trong một biểu mẫu. Vấn đề là tôi muốn thêm đánh dấu vào một điều khiển biểu mẫu thông qua cập nhật ajax nhưng theo cách này thì công cụ MVC không biết rằng đánh dấu này sẽ được chèn vào phần tử biểu mẫu và do đó nó không phát ra bất kỳ đánh dấu xác nhận nào. – Zoliqa
Bạn có thể ép buộc nó bằng một số mã Html.ValidationMessageFor(). Như tôi đã nói, hãy cho chúng tôi xem quan điểm của bạn. – rfmodulator