2012-03-17 42 views
12
var boxIdValue = 233; 
var result = title + '<br/>@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=233}, null)'; 

Khi tôi hardcode boxId thì nó hoạt động. Nhưng khi tôi viết:Biến Javascript trong dao cạo ActionLink

var result = title + '<br/>@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=boxIdValue}, null)'; 

Không. Có thể trộn javascript var và dao cạo theo cách này?

Trả lời

21

Hãy xem câu hỏi this related Stack Overflow.

Lý do tại sao đây là một thách thức là phương pháp Razor thực hiện trên máy chủ web tại thời gian hiển thị trong khi javascript thực hiện trên trình duyệt của khách hàng khi chạy.

tôi sẽ giải quyết điều này bằng cách làm một cái gì đó giống như

var boxIdValue = 233; 
var link = '@Html.ActionLink("Detail", "Show", "Boxes", new{boxId=-1}, null)' 
link = link.replace('-1', boxIdValue); 
var result = title + '<br />' + link; 
+0

này chỉ hoạt động nếu bạn không có một tham số thứ hai. Một cái gì đó như mới {boxId = -1, page = 1} sẽ thất bại. Dấu tách & sẽ được mã hóa html thành & và thông số trang sẽ không có sẵn trên cation. Để nó hoạt động, bạn cần sử dụng @ Html.Raw (Html.ActionLink ... –

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