এমভিসি এবং রেজারে এইচটিএমএল.টেক্সটবক্সফোর এবং এইচটিএমএল.এডিটরফোরের মধ্যে পার্থক্য


170

নতুন "সম্পাদনা" দর্শন যোগ করার সময় কেন ডিফল্টরূপে এগুলি পরিবর্তন করা হয়েছিল? EditorFor()বনাম ব্যবহার করার সময় কী কী সুবিধা রয়েছে TextboxFor()?

আমি এটি খুঁজে পেয়েছি

ডিফল্টরূপে, তৈরি করুন এবং সম্পাদনা করুন মজাদারগুলি এখন এইচটিএমএল.সেক্সটবক্সের সাহায্যকারীর পরিবর্তে এইচটিএমএল.এডিটর জন্য সহায়ক ব্যবহার করে। অ্যাড ভিউ যোগ করুন ডায়ালগ বাক্স যখন একটি ভিউ উত্পন্ন করে তখন এটি ডেটা টীকা বৈশিষ্ট্যের আকারে মডেলটিতে মেটাডেটার জন্য সমর্থনকে উন্নত করে।


5
এটি কীভাবে করা যায় তার উদাহরণ কারও আছে? উদাহরণস্বরূপ একটি ডেটপিকারের সম্পাদক লেখার জন্য?
শেনকেম

উত্তর:


166

এর সুবিধাটি EditorForহ'ল আপনার কোডটি কোনও সাথে আবদ্ধ নয় <input type="text"। তাই আপনি যদি আপনার textboxes তাদের মধ্যে মোড়কে মত দেখা যায় দৃষ্টিভঙ্গি কিছু পরিবর্তন করার সিদ্ধান্ত নেন divআপনি কেবল একটি কাস্টম সম্পাদক টেমপ্লেট (লিখতে পারে ~/Views/Shared/EditorTemplates/string.cshtml) এবং আপনার অ্যাপ্লিকেশনটি স্বয়ংক্রিয়ভাবে এই পরিবর্তন থেকে উপকৃত হবে সব আপনার textboxes যেহেতু আপনি হার্ডকোডেড আছে Html.TextBoxForআপনি এটি সর্বত্র এটি সংশোধন করতে হবে। আপনি যেভাবে উপস্থাপিত হয় তা নিয়ন্ত্রণ করতে ডেটা টিকা ব্যবহার করতে পারেন।


সম্ভবত একটি পুরানো সংস্করণে একটি বাগ রয়েছে। Editorfor 'ডাবল' স্বীকৃতি দেয় না। 'দীর্ঘ' জন্য এটি এটিকে 'ইন্ট' হিসাবে বিবেচনা করে এবং পদক্ষেপ = "0.01" বৈশিষ্ট্যগুলিতে কাজ করে না তাই আমি টেক্সটবক্সফোর্ড ব্যবহার করেছি এবং @ টাইপ = 'সংখ্যা' @ পদক্ষেপ = "0.01" যুক্ত করেছি তাই এটি কাজ করেছে
চার্লি

129

টেক্সটবক্সফোর : এটি নির্দিষ্ট এক্সপ্রেশনের সাথে সম্পর্কিত টেক্সট ইনপুট এইচটিএমএল উপাদানটির মতো রেন্ডার করবে। সাধারণ কথায় এটি সর্বদা ইনপুট পাঠ্যবক্সের মতো রেন্ডার করবে সম্পত্তিটির নির্বিশেষে ডেটাটাইপ যা নিয়ন্ত্রণের সাথে আবদ্ধ হয়।

Editorfor : এই নিয়ন্ত্রণটি কিছুটা স্মার্ট। এটি সম্পত্তির ডেটাটাইপের ভিত্তিতে এইচটিএমএল মার্কআপ রেন্ডার করে। যেমন ধরুন মডেলটিতে একটি বুলিয়ান সম্পত্তি রয়েছে। এই সম্পত্তিটি চেকবক্স হিসাবে ভিউতে রেন্ডার করতে হয় আমরা চেকবক্সফোর্ড বা সম্পাদকফোর ব্যবহার করতে পারি। উভয়ই একই মার্কআপ উত্পন্ন করবে।

এডিটরফোর্ড ব্যবহার করে কী সুবিধা?

যেমনটি আমরা জানি, সম্পত্তিটির ডেটাটাইপের উপর নির্ভর করে এটি এইচটিএমএল মার্কআপ উত্পন্ন করে। সুতরাং ধরুন আগামীকাল আমরা যদি মডেলটির সম্পত্তিটির ডেটাটাইপ পরিবর্তন করি তবে ভিউটিতে কোনও পরিবর্তন করার দরকার নেই। সম্পাদকীয় নিয়ন্ত্রণটি এইচটিএমএল মার্কআপটি স্বয়ংক্রিয়ভাবে পরিবর্তন করবে change


15
দুর্দান্ত, সাধারণ উত্তর যা সহজেই কোনও নবজাতক দ্বারা শোষিত হতে পারে।
কিং

উপরের বিবরণটি এই লিঙ্কটিকে সহায়তা করবে ফোরামস.এএসপিএন
১৯৪৮০71০.এএসপিএক্স? এডিটরফোর্ডস +++

এমন কোনও ঘটনা কি আছে যেখানে আপনার একেবারে টেক্সটবক্সফোর ব্যবহার করা উচিত?
agগলই

55

Html.TextboxForসবসময় একটি পাঠ্যবাক্স সৃষ্টি ( <input type="text" ...)।

এডিটরফোর্ডটি টাইপ এবং মেটা সম্পর্কিত তথ্যের দিকে নজর রাখার সময় এবং অন্য কোনও নিয়ন্ত্রণ বা আপনার সরবরাহিত কোনও টেম্পলেট রেন্ডার করতে পারে।

ডেটটাইম বৈশিষ্ট্যের জন্য উদাহরণস্বরূপ আপনি একটি টেমপ্লেট তৈরি করতে পারেন যা jQuery ডেটপিকার ব্যবহার করে।


12
Editfor ব্যবহার করে jquery ডেটপিকারটি কীভাবে প্রয়োগ করতে হবে তার কোনও উদাহরণ?
পেরু

2
তারিখ-সময় কেস ব্যবহার করে পার্থক্যটি সহজ করার জন্য ধন্যবাদ।
কিং

1
@ পেরু, এখানে বা এখানেimplement jquery datepicker এটির সাথে কীভাবে ব্যবহার করা যায় EditorForতা এখানে রয়েছে
শায়জুত

8

এটি পূর্বের মন্তব্যে উল্লিখিত না এমন একটি মৌলিক পার্থক্য:
Readonlyসম্পত্তির জন্য পাঠ্যবক্সে কাজ করবে এবং এটি কাজ করবে না EditorFor

@Html.TextBoxFor(model => model.DateSoldOn, new { @readonly = "readonly" })

উপরে কোডগুলি কাজ করে, যেখানে নিম্নলিখিতগুলি যেমন আপনি কেবলমাত্র পঠন করতে নিয়ন্ত্রণ করতে পারবেন না ।

@Html.EditorFor(model => model.DateSoldOn, new { @readonly = "readonly" })

16
আপনি নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করে কেবল পঠনযোগ্যভাবে সম্পাদক তৈরি করতে পারেন: @ এইচটিএমএল.এডিটরফোর্ড (মডেল => মডেল.ডেটসোল্ডঅন, নতুন {এইচটিএমএলঅ্যাট্রিবিউটস = নতুন {@ রিডনলি = "রিডোনলি"}})
ডগ নুডসেন

4

স্ট্রিং ডেটা টাইপের জন্য এইচটিএমএল আউটপুটটিতে সামান্য পার্থক্য রয়েছে।

Html.EditorFor:  
<input id="Contact_FirstName" class="text-box single-line" type="text" value="Greg" name="Contact.FirstName">

Html.TextBoxFor:
<input id="Contact_FirstName" type="text" value="Greg" name="Contact.FirstName">

2
এটি নিখুঁতভাবে ভুল উত্তর, মূল পার্থক্যটি হ'ল টেক্সবক্সটি ইনপুট দেয় এবং এডিটর আপনার টেম্পলেটটি ফিরিয়ে দেয় যেখানে সম্পাদকটির জন্য ইনপুটটি ডিফল্ট টেম্পলেট হয়।
আর্টেম জি
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.