আপনার স্বল্প কিছু সু্যোগ আছে।
মডেলটিতে প্রতিটি বৈশিষ্ট্যে এই বৈশিষ্ট্য যুক্ত করুন যা আপনাকে এইচটিএমএল - সেরা পছন্দ হিসাবে অনুমতি দেওয়া দরকার
using System.Web.Mvc;
[AllowHtml]
public string SomeProperty { get; set; }
নিয়ন্ত্রক ক্রিয়াকলাপে সমস্ত এইচটিএমএলকে অনুমতি দেওয়ার জন্য এই বৈশিষ্ট্যটি যুক্ত করুন
[ValidateInput(false)]
public ActionResult SomeAction(MyViewModel myViewModel)
ওয়েবকনফিগে বর্বর বাহিনী - অবশ্যই প্রস্তাবিত নয়
ওয়েবকনফিগ ফাইলে, ট্যাগগুলির মধ্যে, অনুরোধভ্যালিডেশনমোড = "২.০" এর সাথে httpRuntime উপাদানটি সন্নিবেশ করুন। পৃষ্ঠাগুলির উপাদানগুলিতে বৈধতাপ্রয়োগ = "মিথ্যা" বৈশিষ্ট্য যুক্ত করুন।
<configuration>
<system.web>
<httpRuntime requestValidationMode="2.0" />
</system.web>
<pages validateRequest="false">
</pages>
</configuration>
আরও তথ্য: http://davidhayden.com/blog/dave/archive/2011/01/16/ এলোএইচটিএমএলটিগ্রিবিএএসপিএনইটিএমভিসি3.এএসপিএক্স
উপরেরগুলি ডিফল্ট মডেলবাইন্ডারের ব্যবহারের জন্য কাজ করে।
কাস্টম মডেলবাইন্ডার
এটি প্রদর্শিত হয় যে উপরের কোডে বাইন্ডিং কনটেক্সট.ভালিউপ্রভাইডার.গেটভ্যালু () এ কল সবসময়ই ডেটা যাচাই করে, কোনও বৈশিষ্ট্য নির্বিশেষে। এএসপি.নেট এমভিসি সূত্রগুলিতে খনন করে জানা যায় যে ডিফল্টমোডেলবাইন্ডার প্রথমে অনুরোধের যাচাইকরণের প্রয়োজন হয় কিনা তা পরীক্ষা করে এবং তারপরে বাইন্ডিং কনটেক্সটকে কল করে nঅনুপাতিতভ্যালিউপ্রভাইডার.গেটভ্যালু () পদ্ধতিটি এমন একটি পরামিতি সহ নির্দেশ করে যা বৈধতা প্রয়োজন কিনা তা নির্দেশ করে।
দুর্ভাগ্যক্রমে আমরা কোনও ফ্রেমওয়ার্ক কোড ব্যবহার করতে পারি না কারণ এটি সিলযুক্ত, ব্যক্তিগত বা বিপজ্জনক জিনিসগুলি করা থেকে অজ্ঞানীদের বাঁচানোর জন্য যা কিছু আছে, তবে AllowHtml এবং ValidateInput বৈশিষ্ট্যগুলিকে সম্মান করে এমন একটি কার্যকর কাস্টম মডেল বাইন্ডার তৈরি করা খুব কঠিন নয়:
public class MyModelBinder: IModelBinder
{
public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
{
var shouldPerformRequestValidation = controllerContext.Controller.ValidateRequest && bindingContext.ModelMetadata.RequestValidationEnabled;
var valueProviderResult = bindingContext.GetValueFromValueProvider(shouldPerformRequestValidation);
if (valueProviderResult != null)
{
var theValue = valueProviderResult.AttemptedValue;
}
}
}
অন্যান্য প্রয়োজনীয় অংশটি একটি অবৈধ মান পুনরুদ্ধার করার একটি উপায়। এই উদাহরণে আমরা মডেলবাইন্ডিং কনটেক্সট শ্রেণীর জন্য একটি এক্সটেনশন পদ্ধতি ব্যবহার করি:
public static class ExtensionHelpers
{
public static ValueProviderResult GetValueFromValueProvider(this ModelBindingContext bindingContext, bool performRequestValidation)
{
var unvalidatedValueProvider = bindingContext.ValueProvider as IUnvalidatedValueProvider;
return (unvalidatedValueProvider != null)
? unvalidatedValueProvider.GetValue(bindingContext.ModelName, !performRequestValidation)
: bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
}
}
এই সম্পর্কে আরও তথ্য http://blogs.taiga.nl/martijn/2011/09/29/custom-model-binders-and-request-uthorization/ এ