আমি একটি কাস্টম এক্সটেনশন পদ্ধতি দিয়ে শেষ করেছি। এটি লক্ষণীয় যে, কোনও অ্যাঙ্কর অবজেক্টের ভিতরে এইচটিএমএল রাখার চেষ্টা করার সময়, লিঙ্কটি পাঠ্যটি বামে বা অভ্যন্তরীণ HTML এর ডানদিকে হতে পারে। এই কারণে, আমি বাম এবং ডান অভ্যন্তর এইচটিএমএল জন্য পরামিতি সরবরাহ করতে পছন্দ করেছি - লিঙ্ক পাঠ্যটি মাঝখানে রয়েছে। বাম এবং ডান উভয় অভ্যন্তর এইচটিএমএল optionচ্ছিক।
এক্সটেনশন পদ্ধতি অ্যাকশনলিঙ্কইনার এইচটিএমএল:
public static MvcHtmlString ActionLinkInnerHtml(this HtmlHelper helper, string linkText, string actionName, string controllerName, RouteValueDictionary routeValues = null, IDictionary<string, object> htmlAttributes = null, string leftInnerHtml = null, string rightInnerHtml = null)
{
// CONSTRUCT THE URL
var urlHelper = new UrlHelper(helper.ViewContext.RequestContext);
var url = urlHelper.Action(actionName: actionName, controllerName: controllerName, routeValues: routeValues);
// CREATE AN ANCHOR TAG BUILDER
var builder = new TagBuilder("a");
builder.InnerHtml = string.Format("{0}{1}{2}", leftInnerHtml, linkText, rightInnerHtml);
builder.MergeAttribute(key: "href", value: url);
// ADD HTML ATTRIBUTES
builder.MergeAttributes(htmlAttributes, replaceExisting: true);
// BUILD THE STRING AND RETURN IT
var mvcHtmlString = MvcHtmlString.Create(builder.ToString());
return mvcHtmlString;
}
ব্যবহারের উদাহরণ:
এখানে ব্যবহারের একটি উদাহরণ রয়েছে। এই উদাহরণের জন্য আমি কেবল লিঙ্ক পাঠ্যের ডানদিকে অভ্যন্তরীণ এইচটিএমএল চেয়েছিলাম ...
@Html.ActionLinkInnerHtml(
linkText: "Hello World"
, actionName: "SomethingOtherThanIndex"
, controllerName: "SomethingOtherThanHome"
, rightInnerHtml: "<span class=\"caret\" />"
)
ফলাফল:
এটি নিম্নলিখিত এইচটিএমএলে ফলাফল ...
<a href="/SomethingOtherThanHome/SomethingOtherThanIndex">Hello World<span class="caret" /></a>