2015-04-13 22 views
5

Tôi muốn vượt qua nhiều thông số từ Url.Action, Đây là mã theo quan điểmLàm thế nào để vượt qua nhiều tham số trong Url.Action()

window.location.href = "@Url.Action("ABC", "XYZ", new { @A= ViewBag.A , @B = ViewBag.B })"; 

Và đây là phương pháp của tôi trong bộ điều khiển XYZ

public ActionResult ABC(string A, string B) 
{ 
    // Some Code 
} 

Tôi luôn nhận giá trị trong tham số đầu tiên và giá trị thứ hai luôn là giá trị rỗng. Hoặc nếu tôi nhưng B trước tiên. Người thứ hai luôn là null. VIEW về cơ bản là dưới chức năng JavaScript. Đây là URL: http://localhost/CargoMainSite/XYZ/ABC?A=1&B=2 Xin lưu ý rằng có một số văn bản bổ sung giữa Thông số một và Tham số hai, đó là "amp;" nếu tôi loại bỏ nó một cách rõ ràng. Nó hoạt động tốt và có được giá trị thích hợp.

+0

Cảm ơn @Lalit Kumar cho chỉnh sửa. –

+2

Tại sao sử dụng bài đăng nếu bạn đang hiển thị cả hai tham số trong url? – gog

+0

Hãy để nó. Điều gì sẽ xảy ra nếu nó không phải là POST? –

Trả lời

16

Lý do tại sao Url.Action không làm việc là & char trong url được mã hóa, vì vậy bạn phải sử dụng @ Html.Raw như sau

window.location.href = "@Html.Raw(@Url.Action("ABC", "XYZ", new { @A= ViewBag.A , @B = ViewBag.B }))"; 
+1

Cảm ơn @Abbas galiyakot nó thực sự hoạt động hoàn hảo. Nhưng tôi có một câu hỏi. Xin vui lòng cho tôi biết nếu có bất kỳ vấn đề bằng cách sử dụng @ Html.Raw() như cross scripting? gửi thư rác, v.v. –

+0

Bên cạnh đó, tôi chấp nhận câu trả lời của bạn. –

+0

rủi ro là làm thế nào nó được sử dụng Nếu bạn đang hiển thị thông tin người dùng nhập vào thì tốt hơn là sử dụng @ Html.Encode(). Nói cách khác, nếu bạn đang hiển thị dữ liệu không có người dùng, bạn có thể an toàn với @ Html.Raw() –

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