2012-08-17 52 views
7

Tôi muốn chuyển đổi liên kết đến liên kết hành động ajax. Tôi không thể tìm ra cách hiển thị các phần tử html trong văn bản liên kết?tạo liên kết hành động ajax với các phần tử html trong văn bản liên kết

Dưới đây là liên kết ban đầu:

<a href="#onpageanchor" id="myId" class="myClass" title="My Title."><i class="icon"></i>Click Me</a> 

Đây là ajax ActionLink:

@Ajax.ActionLink("<i class='icon'></i>Click Me", "MyActionMethod", new { id = "testId" }, 
         new AjaxOptions 
         { 
          UpdateTargetId = "mytargetid" 
         }, new 
         { 
          id = "myId", 
          @class = "myClass", 
          title="My Title." 
         }) 

văn bản liên kết trả lại là chuỗi thực tế: "<i class='icon'></i>Click Me</a>"

+0

http://stackoverflow.com/questions/9194876/asp-net-mvc-ajax-actionlink-with-a-htmlstring –

+0

Bạn đã nghĩ đến việc chỉ sử dụng jQuery để gửi yêu cầu? – Paul

+0

Vui lòng xem câu trả lời của tôi cho câu hỏi này trong http://stackoverflow.com/questions/341649/asp-net-mvc-ajax-actionlink-with-image/17151675#17151675 – JotaBe

Trả lời

28

hơn một năm cuối và tất cả mọi thứ nhưng đây là những gì tôi sử dụng. Hy vọng nó sẽ giúp người khác.

@Ajax.RawActionLink(string.Format("<i class='icon'></i>Click Me"), "ActionResultName", null, new { item.Variable}, new AjaxOptions { HttpMethod = "Post", InsertionMode = InsertionMode.Replace, UpdateTargetId = "taget-div", LoadingElementId = "target-div" }, new { @class = "class" }) 

Sau đó các helper ...

public static MvcHtmlString RawActionLink(this AjaxHelper ajaxHelper, string linkText, string actionName, string controllerName, object routeValues, AjaxOptions ajaxOptions, object htmlAttributes) 
    { 
     var repID = Guid.NewGuid().ToString(); 
     var lnk = ajaxHelper.ActionLink(repID, actionName, controllerName, routeValues, ajaxOptions, htmlAttributes); 
     return MvcHtmlString.Create(lnk.ToString().Replace(repID, linkText)); 
    } 
+2

+1 không bao giờ quá muộn để được đánh dấu là câu trả lời – Askolein

+1

Chính xác những gì tôi đang tìm kiếm; tuyệt diệu! – pookie

0

Tôi đã tạo ra Ajax.ActionLink để hiển thị hình ảnh thay vì liên kết văn bản

@Ajax.ActionLink(".", "Delete_Share_Permission", "Share", new { delwhich = "one", delid = @UserSharingDetails.PK_User_Sharing_Id }, new AjaxOptions { UpdateTargetId = "sharelist", InsertionMode = InsertionMode.Replace, OnBegin = "return confirmdeleteone();" }, new { @class = "deleteButton", @id = "fna" }) 

Áp dụng lớp

.deleteButton {   
    background-image: url("/images/DeleteData.png"); 
    position: absolute; 
    right: 6px; 
    background-repeat: no-repeat; 
    border: none; 
    background-position: 50% 50%; 
    margin-left: 10px; 
    background-color: transparent; 
    width: 13px; 
    color: #ffffff !important; 
    display: block; 
    top: 5px; 
} 

tôi hy vọng mã này hữu ích cho bạn .

Cảm ơn bạn.

0
@Ajax.ActionLink(" Name", "AjaxGetAllUsers", "Admin", new { sortBy = ViewBag.SortByName, search = Request.QueryString["search"] }, new AjaxOptions() { UpdateTargetId = "userlist", InsertionMode = InsertionMode.Replace, HttpMethod = "GET" }, new { @class = "fa fa-sort" }) 
Các vấn đề liên quan