উত্তর:
এটি ক্ষেত্রটির জন্য (আপনার মডেল থেকে) ফর্মটিতে একটি লুকানো ইনপুট তৈরি করে যা আপনি এটি পাস করেন।
এটি আপনার মডেল / ভিউমোডেলের ক্ষেত্রগুলির জন্য দরকারী যে আপনাকে পৃষ্ঠাটিতে অবিরাম থাকতে হবে এবং অন্য কল করার পরে ফিরে এসেছিল তবে ব্যবহারকারীর দ্বারা দেখা উচিত নয়।
নিম্নলিখিত ভিউমোডেল ক্লাসটি বিবেচনা করুন:
public class ViewModel
{
public string Value { get; set; }
public int Id { get; set; }
}
এখন আপনি সম্পাদনা পৃষ্ঠাটি আইডিটি সঞ্চয় করতে চান তবে এটিটি দেখা যায় না:
<% using(Html.BeginForm() { %>
<%= Html.HiddenFor(model.Id) %><br />
<%= Html.TextBoxFor(model.Value) %>
<% } %>
এটি নিম্নলিখিত HTML এর সমতুল্য ফলাফল:
<form name="form1">
<input type="hidden" name="Id">2</input>
<input type="text" name="Value" value="Some Text" />
</form>
এবং লুকানো আইডি ইনপুট আপনার সম্পাদনা ক্রিয়া পদ্ধতিতে ফিরে গ্রাস করতে:
[HttpPost]
public ActionResult Edit(FormCollection collection)
{
ViewModel.ID = Convert.ToInt32(collection["ID"]);
}
অনেকগুলি ফাংশনের মতো, এটি বিভিন্নভাবে বিভিন্ন সমস্যার সমাধানের জন্য বিভিন্ন উপায়ে ব্যবহার করা যেতে পারে, আমি এটিকে আমাদের টুলবেল্টগুলির আর একটি সরঞ্জাম বলে মনে করি।
এখনও অবধি আলোচনার বিষয়টি কেবলমাত্র একটি আইডি আড়াল করার দিকে খুব বেশি মনোনিবেশ করেছে, তবে এটি কেবল একটি মান, কেন এটি প্রচুর মানের জন্য ব্যবহার করবেন না! আমি এটিই করছি, আমি ক্লাসে মানগুলি একবারে কেবলমাত্র একটি ভিউ লোড করার জন্য এটি ব্যবহার করি, কারণ এইচটিএমএল.বেগিনফর্ম একটি নতুন অবজেক্ট তৈরি করে এবং যদি এই দৃশ্যের জন্য আপনার মডেল অবজেক্টটিতে ইতিমধ্যে কিছু মান পাস হয়ে যায় তবে সেগুলি আপনি যদি প্রাথমিক সংস্করণে এই মানগুলির কোনও রেফারেন্স সরবরাহ না করেন তবে মানগুলি হারিয়ে যাবে।
এইচটিএমএল হিডেনের জন্য একটি দুর্দান্ত অনুপ্রেরণা দেখতে, আমি আপনাকে সুপারিশ করি আপনি .NET এমভিসি - "@ মডেল" তে একটি নিয়ন্ত্রণকারীর কাছে একটি ভিউ থেকে ডেটা পাসিং ডেটা দেখতে পান
রেজার কোড @ এইচটিএমএল.হিডেন বা @ এইচটিএমএল.হিডেনফোর্ডের ব্যবহার নীচের এইচটিএমএল কোডের মতো is
<input type="hidden"/>
এবং নীচের লিঙ্কটি উল্লেখ করুন