Tôi đang sử dụng jQuery.load()
để hiển thị chế độ xem một phần. Phần này trông như thế này:ASP.NET MVC 2 tải một phần xem bằng cách sử dụng jQuery - không có xác thực phía máy khách
$('#sizeAddHolder').load(
'/MyController/MyAction', function() { ... });
Mã cho hành động trong bộ điều khiển của tôi là như sau:
public ActionResult MyAction(byte id)
{
var model = new MyModel
{
ObjectProp1 = "Some text"
};
return View(model);
}
[HttpPost]
public ActionResult MyAction(byte id, FormCollection form)
{
// TODO: DB insert logic goes here
var result = ...;
return Json(result);
}
Tôi đang trở về một lần xem một phần mà trông giống như sau:
<% using (Html.BeginForm("MyAction", "MyController")) {%>
<%= Html.ValidationSummary(true) %>
<h3>Create my object</h3>
<fieldset>
<legend>Fields</legend>
<div class="editor-label">
<%= Html.LabelFor(model => model.ObjectProp1) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.Size.ObjectProp1) %>
<%= Html.ValidationMessageFor(model => model.ObjectProp1) %>
</div>
div class="editor-label">
<%= Html.LabelFor(model => model.ObjectProp2) %>
</div>
<div class="editor-field">
<%= Html.TextBoxFor(model => model.ObjectProp2) %>
<%= Html.ValidationMessageFor(model => model.ObjectProp2) %>
</div>
<p>
<input type="submit" value="Create" />
</p>
</fieldset>
<% } %>
Xác nhận phía máy khách không hoạt động trong trường hợp này. Hơn nữa, tập lệnh chứa thông báo xác thực cũng không được bao gồm trong chế độ xem được trả lại. Cả hai thuộc tính trong lớp mô hình của tôi đều có các thuộc tính Required
và StringLength
. Có cách nào để kích hoạt xác thực phía máy khách trong chế độ xem đã được tải như thế này không?
Cảm ơn bạn đã thông tin có giá trị. Tôi đã sửa chữa những lỗi này nhưng điều đó không thực sự tạo ra sự khác biệt. Html rendered là giống hệt nhau trong cả hai trường hợp vì 'load()' nhận html giống như cách 'ajax()' sử dụng XMLHttpRequest và 'return View (model)' nếu theres no SomeAction.aspx sẽ trả về SomeAction.ascx . Hãy xem tại đây: http://stackoverflow.com/questions/2043394/what-is-the-difference-between-a-view-and-a-partialview-in-asp-net-mvc Vì vậy, vấn đề chính là vẫn ở đó: không xác thực phía khách hàng; không có tập lệnh nào chứa thông báo xác thực .. –
Đoạn mã trên không giải quyết được vấn đề ban đầu –
anh ta cũng có thể trả về Chế độ xem, nó không thực sự quan trọng miễn là chế độ xem mà anh ấy quay lại không sử dụng cùng một trang chính như nơi nó được gọi là – Omu