2012-02-08 35 views
19

Tôi đang cố gắng bổ sung thêm thuộc tính dữ liệu biểu tượng để liên kết hành động của tôi, nhưng tôi nhận được báo lỗi dưới đây:Trình khai báo thành viên kiểu vô danh không hợp lệ. thành viên loại vô danh phải được khai báo với một nhiệm vụ thành viên, tên đơn giản hay truy cập thành viên

Trình khai báo thành viên kiểu vô danh không hợp lệ. Thành viên loại ẩn danh phải được tuyên bố với nhiệm vụ thành viên, tên đơn giản hoặc quyền truy cập thành viên.

trình:

@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 }, 
      new { @rel = "external", @id = "btnProfile" }) 

Ngoại lệ:

@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 }, 
      new { @rel = "external", @id = "btnProfile", @data-icon = "gear" }) 
+8

thay vì '@ dữ liệu icon' sử dụng' @ data_icon' – xandercoded

+0

đưa ra ngoại lệ cùng một – Eugene

Trả lời

24

UPDATE: Từ bình luận Xander của trên, sử dụng data_icon = "gear"

Yo u có thể sử dụng một IDictionary<string, object> ở vị trí của đối tượng ẩn danh cho HTML thuộc tính:

@Html.ActionLink("Profile", "Details", "Profile", new { id = 11 } 
    , new Dictionary<string, object> 
    { 
     { "rel", "external" }, 
     { "id", "btnProfile" }, 
     { "data-icon", "gear" }, 
    }) 

Xem tình trạng quá tải này: http://msdn.microsoft.com/en-us/library/dd504988.aspx

Các helper bạn đang sử dụng chỉ là một phương pháp thuận tiện của việc tạo ra các từ điển, nhưng đằng sau hậu trường từ điển được tạo ra.

+3

Khi tôi làm điều này, nó ám chỉ rằng liên kết như: 'Log Off' – xdumaine

+0

Tôi gặp sự cố này với dấu chấm/dấu chấm trong tham số của mình (một lớp Lọc có thành viên mà tôi muốn chuyển), tôi đã tìm được cách làm việc sau ... '@ Html.ActionLink (" Hồ sơ "," Chi tiết ", mới RouteValueDictionary {{" filter.member ", myvalue.ToString()}})' Hy vọng công việc định dạng - về cơ bản sử dụng RouteValueDictionary thay vì loại ẩn danh? – KeithFearnley

3

tôi chỉ sử dụng sau

@using System.Web.Routing 

@{ 
    RouteValueDictionary RouteValues = new RouteValueDictionary(); 

    RouteValues["id"] = 11; 
    RouteValues[Some_Name] = Some_Value; //do this with as many name/value pairs 
             //as you like 
} 

@Html.ActionLink("Link Text", "Action", "Controller", RouteValues) 

mà tôi học được từ câu trả lời của Jon trong this post.

Tôi đã sử dụng chủ yếu trong các bộ điều khiển của tôi để cung cấp các giá trị đường cho RedirectToAction() phương pháp, nhưng tôi không hiểu tại sao nó không nên làm việc theo quan điểm của bạn, bạn sẽ cần phải thêm một @using System.Web.Routing; mặc dù.

16

Tôi nghĩ rằng bạn sử dụng gạch chân như data_icon và nó dịch

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