Url.Action পরামিতি?


116

লিস্টিং কন্ট্রোলারে আমার আছে,

 public ActionResult GetByList(string name, string contact)
 {        
     var NameCollection = Service.GetByName(name);    
     var ContactCollection = Service.GetByContact(contact);           
     return View(new ListViewModel(NameCollection ,ContactCollection));
 }

এএসপিএক্স পৃষ্ঠায় আমি কল করি,

 <a href="<%:Url.Action("GetByList","Listing" , new {name= "John"} , new {contact="calgary, vancouver"})%>"><span>People</span></a>

আমার এএসপিএক্স কোডে সমস্যা আছে ... আমি জন নামের রেকর্ডগুলি টানতে পারি। তবে আমি যখন দিই contact="calgary, vancouver", ওয়েবপেজটি ত্রুটি হয়ে যায়।

আমি কীভাবে দুটি পরামিতি কল করতে পারি Url.Action। আমি নীচে চেষ্টা করেছি কিন্তু এটিও ভুল বলে মনে হচ্ছে।

  <a href="<%:Url.Action("GetByList","Listing" , new {name= "John" , contact= " calgary, vancouver" })%>"><span>People</span></a>

উত্তর:


207

নিম্নলিখিত সঠিক জমিদার (আপনার উদাহরণে আপনি একটি ক্লোজিং অনুপস্থিত হয় }থেকে routeValuesবেনামী বস্তুর তাই আপনার কোড একটি ব্যতিক্রম নিক্ষেপ করা হবে):

<a href="<%: Url.Action("GetByList", "Listing", new { name = "John", contact = "calgary, vancouver" }) %>">
    <span>People</span>
</a>

ধরে নিই যে আপনি ডিফল্ট রুটগুলি ব্যবহার করছেন এটি নিম্নলিখিত চিহ্নআপটি উত্পন্ন করবে:

<a href="/Listing/GetByList?name=John&amp;contact=calgary%2C%20vancouver">
    <span>People</span>
</a>

যা সফলভাবে GetByListদুটি পরামিতিগুলি অতিক্রম করে নিয়ামক পদক্ষেপের অনুরোধ করবে :

public ActionResult GetByList(string name, string contact) 
{
    ...
}

@ ব্যবহারকারী 787788, আপনি কী সমস্যা পাচ্ছেন? দুটি পরামিতি গ্রহণ না করার অর্থ কী ? কে মানছে না? আপনি একটি ত্রুটির বার্তা পাচ্ছেন? আপনার নিয়ামক অ্যাকশন আঘাত না? আপনি কি ভুল মূল্যবোধ পাচ্ছেন? নির্দিষ্ট করা।
দারিন দিমিত্রভ

যখন আমি দুটি প্যারামিটার দিই, এসপেক্স পৃষ্ঠাটি নিয়ামককেও আঘাত করে না। এটি পৃষ্ঠাতে নিজেই ত্রুটিটি সন্ধান করছে। আমার একটি ডিফালট ব্যতিক্রম আছে যা ডেকে আনে
এসপিএক্স

@ ব্যবহারকারী 787788, ত্রুটিটি কী? ঠিক কী বার্তা পাচ্ছেন?
দারিন দিমিত্রভ

ত্রুটিটি হল, আপনি ঠিকানা (ইউআরএল) ভুলভাবে টাইপ করতে পারেন।
ব্যবহারকারী 787788

2
@ ডারিনডিমিট্রভ, আমি জানি এটি অনেক পুরানো পোস্ট, তবে আমি দেখেছি আপনি অনলাইন ছিলেন were আমি মনে করি না আপনি কীভাবে একটি প্যারামিটারটি গতিশীলভাবে পাস করবেন ("জন" এর মতো হার্ডকড নয়)?

8

এটি এমভিসি 5 এর জন্য কাজ করে:

<a href="@Url.Action("ActionName", "ControllerName", new { paramName1 = item.paramValue1, paramName2 = item.paramValue2 })" >
    Link text
</a>

4

আপনি এইচটিটিপিওয়ালিউ কালেকশন নামে একটি ব্যক্তিগত সংগ্রহও ফিরিয়ে দিতে পারেন এমনকি ডকুমেন্টেশনতে এটি পার্সেকুয়েরিস্ট্রিং ইউটিলিটি ব্যবহার করে একটি নেমভ্যালু সংগ্রহ রয়েছে বলে জানায়। তারপরে কীগুলি ম্যানুয়ালি যোগ করুন, আপনার জন্য এনকোডিংটি করা HTTPValue Colલેક્શન। এবং তারপরে নিজেই কোয়েরিস্ট্রিং ম্যানুয়ালি যুক্ত করুন:

var qs = HttpUtility.ParseQueryString(""); 
qs.Add("name", "John")
qs.Add("contact", "calgary");
qs.Add("contact", "vancouver")

<a href="<%: Url.Action("GetByList", "Listing")%>?<%:qs%>">
    <span>People</span>
</a>

0

এটি করার আরও একটি সহজ উপায় এখানে

<a class="nav-link"
   href='@Url.Action("Print1", "DeviceCertificates", new { Area = "Diagnostics"})\@Model.ID'>Print</a>

@Model.IDএকটি পরামিতি যেখানে

এবং এখানে একটি দ্বিতীয় উদাহরণ আছে।

<a class="nav-link"
   href='@Url.Action("Print1", "DeviceCertificates", new { Area = "Diagnostics"})\@Model.ID?param2=ViewBag.P2&param3=ViewBag.P3'>Print</a>
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.