आप इसे ViewModels के साथ कर सकते हैं जैसे आपने अपने नियंत्रक से डेटा कैसे देखा।
मान लें कि आपके पास इस तरह का एक दृश्य है
public class ReportViewModel
{
public string Name { set;get;}
}
और अपने GET एक्शन में,
public ActionResult Report()
{
return View(new ReportViewModel());
}
और आपके विचार को दृढ़ता से टाइप किया जाना चाहिए ReportViewModel
@model ReportViewModel
@using(Html.BeginForm())
{
Report NAme : @Html.TextBoxFor(s=>s.Name)
<input type="submit" value="Generate report" />
}
और अपने नियंत्रक में HttpPost कार्रवाई विधि में
[HttpPost]
public ActionResult Report(ReportViewModel model)
{
}
या बस, आप POCO वर्गों (Viewmodels) के बिना यह कर सकते हैं
@using(Html.BeginForm())
{
<input type="text" name="reportName" />
<input type="submit" />
}
और अपने HttpPost एक्शन में, टेक्स्टबॉक्स नाम के समान नाम वाले पैरामीटर का उपयोग करें।
[HttpPost]
public ActionResult Report(string reportName)
{
}
संपादित करें: टिप्पणी के अनुसार
यदि आप किसी अन्य कंट्रोलर को पोस्ट करना चाहते हैं, तो आप BeginForm विधि के इस अधिभार का उपयोग कर सकते हैं ।
@using(Html.BeginForm("Report","SomeOtherControllerName"))
{
<input type="text" name="reportName" />
<input type="submit" />
}
देखने की क्रिया विधि से डेटा पास करना?
आप समान दृश्य मॉडल का उपयोग कर सकते हैं, बस अपने GET एक्शन विधि में संपत्ति मान सेट कर सकते हैं
public ActionResult Report()
{
var vm = new ReportViewModel();
vm.Name="SuperManReport";
return View(vm);
}
और आपके विचार में
@model ReportViewModel
<h2>@Model.Name</h2>
<p>Can have input field with value set in action method</p>
@using(Html.BeginForm())
{
@Html.TextBoxFor(s=>s.Name)
<input type="submit" />
}