चेक बॉक्स आइटम
public class ChannelViewModel
{
public string Name { set;get;}
public int Id { set;get;}
public bool IsSelected { set;get;}
}
अब अपने मुख्य ViewModel इस
public class AlertViewModel
{
public int AlertId { get; set; }
public List<ChannelViewModel> UserChannelIds { get; set; }
//Other Properties also her
public AlertViewModel()
{
UserChannelIds=new List<ChannelViewModel>();
}
}
अब आप अपने GET
कार्रवाई में तरह होगा प्रतिनिधित्व करने के लिए इस तरह अपना मॉडल देखना है, तो आप भर जाएगा ViewModel के मान और इसे देखने के लिए भेजा।
public ActionResult AddAlert()
{
var vm = new ChannelViewModel();
//The below code is hardcoded for demo. you mat replace with DB data.
vm.UserChannelIds.Add(new ChannelViewModel{ Name = "Test1" , Id=1});
vm.UserChannelIds.Add(new ChannelViewModel{ Name = "Test2", Id=2 });
return View(vm);
}
अब चलिए एक संपादक टेम्पलेट बनाएं। Views/YourControllerName
में जाओ और क्रेते एक फ़ोल्डर "EditorTemplate" कहा जाता है और प्रॉपर्टी नाम के रूप में एक ही नाम के साथ एक नया दृश्य बनाएं (ChannelViewModel.cshtml
)
अपने नए संपादक टेम्पलेट ro यह कोड जोड़ें।
@model ChannelViewModel
<p>
<b>@Model.Name</b> :
@Html.CheckBoxFor(x => x.IsSelected) <br />
@Html.HiddenFor(x=>x.Id)
</p>
अब आपके मुख्य दृश्य में
, EditorFor
एचटीएमएल हेल्पर पद्धति का उपयोग करके अपने संपादक टेम्पलेट पर कॉल करें।
@model AlertViewModel
<h2>AddTag</h2>
@using (Html.BeginForm())
{
<div>
@Html.LabelFor(m => m.AlertId)
@Html.TextBoxFor(m => m.AlertId)
</div>
<div>
@Html.EditorFor(m=>m.UserChannelIds)
</div>
<input type="submit" value="Submit" />
}
अब जब आप फार्म पोस्ट करें, आपका मॉडल UserChannelIds
संग्रह जहां चेकबॉक्स चयनित IsSelected
प्रॉपर्टी के लिए एक True
मूल्य होने दिया जाएगा होगा। मेरे दृश्य मॉडल की
[HttpPost]
public ActionResult AddAlert(AlertViewModel model)
{
if(ModelState.IsValid)
{
//Check for model.UserChannelIds collection and Each items
// IsSelected property value.
//Save and Redirect(PRG pattern)
}
return View(model);
}
पोस्टिंग के लिए धन्यवाद। हालांकि, मैं अभी भी थोड़ा उलझन में हूँ। दृश्य मॉडल में कुछ चेकबॉक्स मैप करने के लिए तीन वर्गों और तीन संपादक टेम्पलेट्स को जोड़ने के लिए अत्यधिक लगता है। क्या यह सबसे आसान तरीका है? –
3 कक्षाएं और 3 संपादक टेम्पलेट्स कहां है? मुझे 2 कक्षाएं और 1 संपादक टेम्पलेट – Shyju
दिखाई देता है मेरे पास तीन सूची गुण हैं, इसलिए मुझे लगता है कि मुझे आपके समाधान का उपयोग करने के लिए तीन कक्षाएं और तीन संपादन टेम्पलेट की आवश्यकता होगी। क्या यह सही नहीं है? –