এইএসপি.নেট রেজারে এইচটিএমএল.অ্যাকশনলিংক বনাম ইউরাল.অ্যাকশন


304

HTML.ActionLinkবনামের মধ্যে কোনও পার্থক্য আছে Url.Actionবা সেগুলি একই জিনিসটি করার কেবল দুটি উপায়?

আমি কখন অন্যের চেয়ে বেশি পছন্দ করব?

উত্তর:


508

হ্যাঁ, একটি পার্থক্য আছে। Html.ActionLinkএকটি <a href=".."></a>ট্যাগ তৈরি করে যেখানে Url.Actionকেবল একটি url দেয়।

উদাহরণ স্বরূপ:

@Html.ActionLink("link text", "someaction", "somecontroller", new { id = "123" }, null)

উত্পন্ন:

<a href="/somecontroller/someaction/123">link text</a>

এবং Url.Action("someaction", "somecontroller", new { id = "123" })উত্পন্ন:

/somecontroller/someaction/123

রয়েছে Html.Action যা একটি শিশু নিয়ামক কর্ম সঞ্চালন করে।


14
@ পঙ্কজউপাধ্যায়, একটি এসপ নেটওয়্যার এমভিসি অ্যাপ্লিকেশনটিতে ইউআরএল নিয়ে কাজ করার সময় আপনার সর্বদা এইচটিএমএল বা ইউআরএল সহায়ক ব্যবহার করা উচিত। আপনার শততম লিঙ্ক থাকলেও Html.ActionLinkএগুলি উত্পন্ন করতে ব্যবহার করুন। এই জাতীয় মাইক্রো অপ্টিমাইজেশন করার চেষ্টা করবেন না। আপনি আপনার দর্শনগুলিতে কুরুচিপূর্ণ কোডটি শেষ করবেন।
দারিন দিমিত্রভ

2
ডাটের অর্থ হ'ল লিঙ্কটি রেন্ডারিংয়ের সাথে সম্পর্কিত হলে সমস্ত পরিস্থিতিতে আমার url.Action এর চেয়ে Html.ActionLink () পছন্দ করা উচিত। বিটিডাব্লু, তারপরে কেন মাইক্রোসফ্ট অফিসিয়াল টিউটোরিয়াল (এমভিসি মিউজিক স্টোর) এপ.নেট ওয়েবসাইটটিতে url.Action ব্যবহার করত যখনই কোনও লিঙ্কের প্রয়োজন হত।
পঙ্কজ উপাধ্যায়

7
@ পঙ্কজউপাধ্যায়, যখন আপনাকে একটি অ্যাঙ্কর ট্যাগ তৈরি করতে হবে তখন HTML.ActionLink ব্যবহার করুন <a>। আপনার যখন কেবল একটি ইউআরএল তৈরি করতে হবে তখন url.Action ব্যবহার করুন (এটি একটি নিয়ামক ক্রিয়ায়ও ব্যবহৃত হতে পারে)।
দারিন দিমিত্রভ

3
@ শিমি, আপনি এটি সম্পর্কে এখানে পড়তে পারেন: haacked.com/archive/2009/11/17/aspnetmvc2-reender-action.aspx
দারিন দিমিত্রভ

3
আমি জানি এটি একটি পুরানো পোস্ট, তবে অভিজ্ঞতা থেকে কিছু শিখেছে। Url.Actionতুলনায় অনেক বেশি পারফরম্যাট Html.ActionLink। আমার কাছে 6,000 আইটেমের একটি তালিকা ছিল যা 2 টি ছিল Html.ActionLinks। তালিকাটি রেন্ডার করতে 6,600 মিমি লাগল। Html.ActionLinksএটি ছাড়া এটি 52ms নিয়েছিল। Url.Actionএটি ব্যবহার করে 270 মিমি নিয়েছে। মঞ্জুর, 6000 আইটেম একটি বৃহত তালিকা, কিন্তু ভেবেছি আমি এটি ভবিষ্যতের রেফারেন্সের জন্য যুক্ত করব।
রবারোকিটি

42

Html.ActionLink<a href=".."></a>স্বয়ংক্রিয়ভাবে একটি ট্যাগ উত্পন্ন করে ।

Url.Action শুধুমাত্র একটি ইউআরএল জেনারেট করে।

উদাহরণ স্বরূপ:

@Html.ActionLink("link text", "actionName", "controllerName", new { id = "<id>" }, null)

উত্পন্ন:

<a href="/controllerName/actionName/<id>">link text</a>

এবং

@Url.Action("actionName", "controllerName", new { id = "<id>" }) 

উত্পন্ন:

/controllerName/actionName/<id>

আমার পছন্দ হওয়া সেরা প্লাস পয়েন্টটি ব্যবহার করা হচ্ছে Url.Action(...)

আপনি নিজের দ্বারা অ্যাঙ্কার ট্যাগ তৈরি করছেন যেখানে আপনি নিজের লিঙ্কযুক্ত পাঠ্যটি সহজেই অন্য কোনও এইচটিএমএল ট্যাগের সাহায্যে সেট করতে পারেন।

<a href="@Url.Action("actionName", "controllerName", new { id = "<id>" })">

   <img src="<ImageUrl>" style"width:<somewidth>;height:<someheight> />

   @Html.DisplayFor(model => model.<SomeModelField>)
</a>

12
<p>
    @Html.ActionLink("Create New", "Create")
</p>
@using (Html.BeginForm("Index", "Company", FormMethod.Get))
{
    <p>
        Find by Name: @Html.TextBox("SearchString", ViewBag.CurrentFilter as string)
        <input type="submit" value="Search" />
        <input type="button" value="Clear" onclick="location.href='@Url.Action("Index","Company")'"/>
    </p>
}

উপরের উদাহরণে আপনি দেখতে পাচ্ছেন যে কিছু ক্রিয়া করার জন্য যদি আমার বিশেষভাবে একটি বোতামের প্রয়োজন হয় তবে আমাকে এটি @ উরল.অ্যাকশন দিয়ে করতে হবে তবে আমি যদি একটি লিঙ্ক চাই তবে আমি @ এইচটিএমএল.অ্যাকশনলিঙ্কটি ব্যবহার করব। মূল বিষয়টি হল যখন আপনাকে অ্যাকশন ইউআরএল সহ কিছু উপাদান (এইচটিএমএল) ব্যবহার করতে হবে।


10

@HTML.ActionLinkউত্পন্ন একটি HTML anchor tag। আপনার জন্য @Url.Actionএকটি উত্পন্ন করার সময় URL। আপনি সহজেই এটি বুঝতে পারবেন;

// 1. <a href="https://stackoverflow.com/ControllerName/ActionMethod">Item Definition</a>
@HTML.ActionLink("Item Definition", "ActionMethod", "ControllerName")

// 2. /ControllerName/ActionMethod
@Url.Action("ActionMethod", "ControllerName")

// 3. <a href="https://stackoverflow.com/ControllerName/ActionMethod">Item Definition</a>
<a href="@Url.Action("ActionMethod", "ControllerName")"> Item Definition</a>

এই উভয় পন্থা পৃথক এবং এটি সম্পূর্ণরূপে আপনার প্রয়োজনের উপর নির্ভর করে।


2

আপনি উপযুক্ত সিএসএস স্টাইল ব্যবহার করে সহজেই এইচটিএমএল.অ্যাকশনলিঙ্কটি একটি বোতাম হিসাবে উপস্থাপন করতে পারেন । উদাহরণ স্বরূপ:

@Html.ActionLink("Save", "ActionMethod", "Controller", new { @class = "btn btn-primary" })

5
এটি HTML.ActionLink বনাম url.Action এর মধ্যে পার্থক্য কী তা মূল প্রশ্নের উত্তর দিতে দেখা যাচ্ছে না। সম্ভবত আপনি একটি উত্তর পরিবর্তে একটি মন্তব্য ব্যবহার করা উচিত।
Fencer04

আপনার উত্তরটি মূল ক্যোয়ারিকে বিনোদন দেয় না।
আরসমান আহমদ

0

আমি বাটন তৈরি করতে নীচের কোডটি ব্যবহার করেছি এবং এটি আমার পক্ষে কাজ করেছে।

<input type="button" value="PDF" onclick="location.href='@Url.Action("Export","tblOrder")'"/>

1
আমার মনে হয়, আপনাকে আবার প্রশ্নটি পড়তে হবে। @ পঙ্কজ উপাধ্যায় সম্পূর্ণ আলাদা জিনিস জিজ্ঞাসা করছেন।
আরসমান আহমেদ
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.