2014-06-12 13 views
8

Làm thế nào để bạn gửi nhiều thông số trong một Url.Action?Làm thế nào để bạn gửi nhiều tham số trong một Url.Action?

Tôi có một bộ điều khiển với một hành động, và tôi muốn 2 thông số, nhưng tham số thứ 2 không được nhận.

Mã của tôi là:

@Url.Action("Products", "Jquery", new { categoryid = 1, Productid = 2}) 

Publc Action Jquery(int categoryid ,int Productid) 
{ 

} 

nhưng tôi chỉ nhận được categoryid, mỗi lần Productid là null.

Xin gợi ý với tôi phải làm gì?

+0

Bạn chỉ định 'categoryid' làm chuỗi, nhưng trong phương thức hành động' Jquery' chữ ký sử dụng 'int' cho' categoryid'. Hãy thử 'mới {categoryId = 1, ProductID = 2} ' –

+0

tôi không chắc chắn nếu nó là một lỗi đánh máy nhưng kiểu trả về phải được' ActionResult' và tham số là hỗn hợp .. nên '@ Url.Action (" actionName "," controllerName "," params đối tượng ")' –

+0

@robwaminal Bạn có thể cho tôi biết Cách sử dụng "params đối tượng" ở đây không? –

Trả lời

8

thử nó như thế này.

@Url.Action("Jquery", "Products", new { @categoryid = 1, @Productid = 2}) 

public ActionResult Jquery(int categoryid, int Productid) 
{ 
    return View(); 
} 

bạn sẽ nhận được 2 thông số trong hành động của bạn. Giả sử hành động Jquery là dưới ProductController

+0

tôi đã thử điều này nhưng nó không hoạt động, không thể nhận được đoạn thứ 2. nó luôn luôn null –

+0

thêm '@' vào tham số đối tượng param của bạn nên giải quyết vấn đề –

+0

thực sự, nó không quan trọng, nếu bạn tiền tố param của bạn với '@' hay không. Nó vẫn hoạt động đầu tiên. Tôi không chắc làm thế nào để giải thích nó. Có lẽ bạn có một số lỗi đánh máy? –

7

Bạn có gọi hành động này từ JQuery không? Âm thanh như bạn có thể là từ các triệu chứng (hoặc ít nhất là @roberto có thể); nếu bạn quấn nó trong Html.Raw:

@Html.Raw(@Url.Action("Jquery", "Products", new { @categoryid = 1, @Productid = 2})); 
Các vấn đề liên quan