如何将数据从视图传递到控制器 [英] How I can Pass Data From View to Controller
本文介绍了如何将数据从视图传递到控制器的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想在控制器上获取视图数据
解决方案
参考从MVC中获取数据从视图到控制器 [ ^ ]
hi
我们有很多方法可以将数据从视图传递到控制器,具体如下: -
1. ViewData
2. ViewBag
3. TempData
4.使用模型
以下是一些链接,你可以得到这个代码
http:// tutorial .techaltum.com / ViewData-in-MVC.html [ ^ ]
http://tutorial.techaltum.com/ViewBag-in-MVC.html [ ^ ]
和
http://tutorial.techaltum.com/UpdateModel-in-MVC.html [ ^ ]
您可以使用ViewModel来完成,例如如何将数据从控制器传递到视图。
假设你有一个像这样的视图模型
公共类ReportViewModel
{
公共字符串名称{set; get;}
}
和你的GET动作,
公共ActionResult报告()
{
return View(new ReportViewModel());
}
你的观点必须强烈输入ReportViewModel
@model ReportViewModel
@using(Html.BeginForm())
{
报告NAme:@ Html.TextBoxFor(s => s.Name)
<输入类型=submitvalue =生成报告/>
}
和控制器中的HttpPost操作方法
[HttpPost]
公共ActionResult报告(ReportViewModel模型)
{
//检查model.Name属性值现在
//要做:返回
}
或者简单地说,你可以在没有POCO课程的情况下做到这一点(Viewmodels)
@using(Html.BeginForm())
{
< input type =textname =reportName/>
< input type =submit/>
}
并在您的HttpPost操作中,使用与文本框名称相同的参数。
[HttpPost]
public ActionResult Report(string reportName)
{
//现在检查reportName参数值
//要做:返回
}
如果你想发布到另一个控制器,你可以使用BeginForm方法的这个重载。
@using(Html.BeginForm(Report,SomeOtherControllerName))
{
< input type =textname =reportName />
< input type =submit/>
}
参考:计算器
I want to get view data on controller
解决方案
refer Getting Data From View to Controller in MVC[^]
hi
we have so many ways to pass data from view to controller and these are as follows:-
1. ViewData
2. ViewBag
3. TempData
4. using Model
following are some links where you can get the code for this
http://tutorial.techaltum.com/ViewData-in-MVC.html[^]
http://tutorial.techaltum.com/ViewBag-in-MVC.html[^]
and
http://tutorial.techaltum.com/UpdateModel-in-MVC.html[^]
You can do it with ViewModels like how you passed data from your controller to view.
Assume you have a viewmodel like this
public class ReportViewModel { public string Name { set;get;} }
and in your GET Action,
public ActionResult Report() { return View(new ReportViewModel()); }
and your view must be strongly typed to ReportViewModel
@model ReportViewModel @using(Html.BeginForm()) { Report NAme : @Html.TextBoxFor(s=>s.Name) <input type="submit" value="Generate report" /> }
and in your HttpPost action method in your controller
[HttpPost] public ActionResult Report(ReportViewModel model) { //check for model.Name property value now //to do : Return something }
OR Simply, you can do this without the POCO classes (Viewmodels)
@using(Html.BeginForm()) { <input type="text" name="reportName" /> <input type="submit" /> }
and in your HttpPost action, use a parameter with same name as the textbox name.
[HttpPost] public ActionResult Report(string reportName) { //check for reportName parameter value now //to do : Return something }
If you want to post to another controller, you may use this overload of the BeginForm method.
@using(Html.BeginForm("Report","SomeOtherControllerName")) { <input type="text" name="reportName" /> <input type="submit" /> }
Reference: stackoverflow
这篇关于如何将数据从视图传递到控制器的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文