Tôi muốn chuyển biến javascript trong một phương thức @ Url.Action làm thông số tuyến đường.Chuyển biến Javascript để định tuyến giá trị trong MVC3
Tôi muốn chuyển biến javascript của màn hình dưới dạng thông số tuyến đường sang phương thức hành động của tôi.
Tôi có kiểu xem với thuộc tính enum ScreenMode và dựa trên nó i nên gọi một hành động trong Ajax. Tôi cũng cần chuyển một biến số javascript làm thông số cho tuyến đường.
Đây là những gì tôi đã cố gắng và có lỗi biên dịch.
Tên 'screenMode' không tồn tại trong bối cảnh hiện nay
$("#role-detail-form").submit(function (e) {
if ($(this).valid()) {
var screenMode = 0;
@{
if (Model.ScreenMode == UI.ViewModel.ScreenMode.New)
{
<text>
screenMode =2;
</text>
}
}
$.post('@Url.Action("SaveRoleDetail", new { mode=screenMode})',
$(this).serialize(), function (data) {
$("#role-detail").html(data);
$.validator.unobtrusive.parse($("#role-detail"));
});
}
e.preventDefault();
});
Hành động của tôi là
public ActionResult SaveRoleDetail(RoleModel viewModel, ScreenMode screenMode)
{
}
Tôi có thể vượt qua chuỗi truy vấn này bằng phương pháp sau ajax không? url sẽ trông như thế nào? screenMode sẽ là một phần của thông số bài viết hoặc trong chuỗi truy vấn? –
Vẫn còn tốt hơn, bạn có thể đặt ScreenMode trong mô hình của mình, có ẩn trong chế độ xem, sau đó nếu bạn muốn thay đổi giá trị trong Javascript, bạn có thể chỉ cần cập nhật giá trị của đầu vào bị ẩn, sau đó khi tất cả được thực hiện, $ ("# form"). serialize() ;, theo cách đó, phương thức hành động của bạn chỉ cần lấy mô hình khung nhìn làm tham số :) – mattytommo
Có bạn là chính xác. Bây giờ tôi sử dụng trường ẩn và cập nhật bằng Javascript. Bạn có thể vui lòng thêm thông tin về Trường ẩn này như là một phần của câu trả lời của bạn không. Vì vậy, nó sẽ dễ dàng nhìn thấy và hữu ích cho những người khác quá :) –