ইউআরএল.অ্যাকশন একটি & amp; আমার ইউআরএলে, আমি কীভাবে এটি সমাধান করতে পারি?


90

আমি ভ্যারিয়েবলগুলি আইটেমআইডি এবং সত্তা মডেলটি অ্যাকশনারসাল্ট ক্রিয়েটনোটে প্রেরণ করতে চাই:

public ActionResult CreateNote(
        [ModelBinder(typeof(Models.JsonModelBinder))]
        NoteModel Model, string cmd, long? itemId, string modelEntity)

এই জাভাস্ক্রিপ্ট সহ:

Model.meta.PostAction = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});

তবে ইউআরএল পাঠানো হচ্ছে

localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44     

আমি প্রেরণ করতে চাই

localhost:1304/Administration/blue/en-gb/Entity/CreateNote?modelEntity=Phrase&itemId=44

আমি কীভাবে url.Action কে আটকাতে পারি যে আমি যে দ্বিতীয় ভেরিয়েবলটি প্রেরণ করতে চাইছি তার সামনে রাখতে!


আপনি কি মনে করেন যে &এটি ঠিক নয়?
ওদেড

4
কারণ যখন আমি ব্রেক-পয়েন্টের সাথে অ্যাকশন রেজাল্টটি দেখি, যখন আমার লোকালহোস্ট থাকে: 1304 / প্রশাসন / নীল / এন-জিবি / সত্তা / ক্রিয়েটনোট? মডেলএনটিটি = ফ্রেস & amp; আইটেমআইডি = 44 মডেলএন্টি = শব্দবন্ধ এবং আইটেম আইডি = নাল। আমি যখন জাভাস্ক্রিপ্টে তাদের ঘুরিয়ে দেব এবং লোকালহোস্ট পাব: 1304 / প্রশাসন / নীল / এন-জিবি / সত্তা / ক্রিয়েটনোট? আইটেমআইডি = 44 & amp; মডেলএন্টি = ফ্রেস আইটেমআইডি = 44 এবং মডেলএন্টিটি = নাল। সে কারণেই আমি মনে করি এটির & amp;
নাইক ডি ক্লিন

4
@ ওডেড - কারণ এইচটিএমএল নয়, ডেটা জাভাস্ক্রিপ্টে sertedোকানো হচ্ছে।
কোয়ান্টিন

উত্তর:


127

আমি গতকাল লক্ষ্য করিনি যে আপনি &ভেবেছিলেন যে এসও সম্পাদক এটি পরিবর্তন করেছিলেন। আপনার মোড়কে চেষ্টা করুন Url.Action()একটি @Html.Raw()& এর এনকোড প্রতিরোধ।

অথবা বিকল্পভাবে কেবলমাত্র Url.Action()নিয়ামক / অ্যাকশন বিট এবং সরাসরি ইউআরএল না করে পোস্ট ডেটা হিসাবে দুটি পরামিতিগুলি পাস করুন, jQuery এর জন্য আপনার জন্য সেইভাবে সাজানো উচিত।


43
এই সমাধানটি কাজ করে, তবে কেন url.Action এমনকি এনকোডেড হয়? অপ্রত্যাশিত আচরণ সম্পর্কে কথা বলুন।
জেরি

13

আমার মনে হয় আপনার সমস্যাটি আছে Model.meta.PostAction- সম্পত্তিটি কি এটি string?

যদি তা হয় তবে আমার অনুমানটি হ'ল আপনি এটির সাথে পৃষ্ঠাটিতে যুক্ত করছেন:

  • রেজার: @Model.meta.PostAction
  • এএসপি ভিউ ইঞ্জিন: <%:Model.meta.PostAction%>

উভয়ই স্বয়ংক্রিয়ভাবে আপনার জন্য সেই স্ট্রিংটি এনকোড করে।

এটির সমাধানের জন্য হয় @Html.Raw()/ ব্যবহার করুন <%=(যা উভয়ই এনকোড করে না) বা PostActionসম্পত্তিটিকে এমন করে তুলুন IHtmlStringযা জানে যে এটি ইতিমধ্যে এনকোড হয়েছে:

string actionUrl = Url.Action("CreateNote", new { cmd = "Save", itemId = itemId, modelEntity = modelEntity});
Model.meta.PostAction = new HtmlString(actionUrl);
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.