ASP.Net MVC如何将数据从视图传递到控制器
|
我对ASP.Net完全陌生,我相信这是一个非常基本的问题
到目前为止,我已经能够传递数据从服务器到使用从我的控制器传递的视图查看,但我不知道如何传递数据从视图到我的控制器。 在这种情况下,我只需要传递一个字符串从视图到控制器。 任何建议与示例将不胜感激。 更新 我理解我必须发布数据回到服务器,但是如何实现以razorhtml代码和控制器的形式? 谢谢, 解决方法你可以用ViewModels做,就像你从控制器传递数据到视图。假设你有一个这样的viewmodel 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)
{
//check for model.Name property value now
//to do : Return something
}
或者,简单地说,你可以做到这一点没有POCO类(Viewmodels) @using(Html.BeginForm())
{
<input type="text" name="reportName" />
<input type="submit" />
}
并在您的HttpPost操作中,使用与文本框名称相同名称的参数。 [HttpPost]
public ActionResult Report(string reportName)
{
//check for reportName parameter value now
//to do : Return something
}
编辑:根据评论 如果你想发布到另一个控制器,你可以使用this overload的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" />
} (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- asp.net-mvc-3 – 如何初始化授权信息
- asp.net-mvc – .Net 4.5.1框架的maxRequestLength
- 如何为枚举执行asp.net mvc 4模型绑定?
- asp.net-mvc – ASP.NET MVC:通过两个控制器操作重用视图
- asp.net-mvc – ASP.NET MVC 2 on mono
- asp.net – 由于其保护级别,未声明变量可能无法访问
- asp.net-mvc – 在VS2015中使用gulp在ASP.NET 4.5.2 MVC项目
- ASP.Net:动态添加到占位符的用户控件无法检索值
- 如何使用Castle Windsor与ASP.Net Web表单?
- asp.net中的ASHX处理程序文件的好处是什么?
