[英] ASP.Net MVC How to pass data from view to controller
我对ASP完全陌生.我相信这是一个非常基本的问题
到目前为止,我已经能够使用从控制器传递到视图的模型将数据从服务器传递到视图,但我不确定如何将数据从视图传递到控制器.
在这种情况下,我只需要将一个字符串从视图传递到控制器.
任何有榜样的建议都将不胜感激.
UPDATE
我知道我必须将数据发回服务器,但这是如何以razorhtml代码和控制器的形式实现的?
我对ASP完全陌生.我相信这是一个非常基本的问题
到目前为止,我已经能够使用从控制器传递到视图的模型将数据从服务器传递到视图,但我不确定如何将数据从视图传递到控制器.
在这种情况下,我只需要将一个字符串从视图传递到控制器.
任何有榜样的建议都将不胜感激.
UPDATE
我知道我必须将数据发回服务器,但这是如何以razorhtml代码和控制器的形式实现的?
您可以使用ViewModels来实现这一点,比如如何将数据从控制器传递到视图.
假设您有一个如下所示的视图模型
public class ReportViewModel
{
public string Name { set;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
}
OR简单地说,您可以在没有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
}
EDIT : As per the comment
如果你想发布到另一个控制器,你可以使用BeginForm方法的this overload.
@using(Html.BeginForm("Report","SomeOtherControllerName"))
{
<input type="text" name="reportName" />
<input type="submit" />
}
可以使用相同的视图模型,只需在GET action方法中设置属性值
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 Core Web API 的 ControllerBase 与 Controller 派生?
警告 NETSDK1071 对“Microsoft.AspNetCore.App”的 PackageReference 指定了“2.1.6”版本
Ef core:执行 MaxAsync 时序列不包含任何元素
未指定 authenticationScheme,并且未找到具有默认身份验证和自定义授权的 DefaultChallengeScheme
我应该如何将 DbContext 实例注入 IHostedService?
如何在 ASP.NET Core 2.0 中设置多个身份验证方案?
如何在 ASP.Net Core 替代方式中获取 Server.MapPath 的绝对路径
如何在 ASP.NET Core 中更改 Swagger 的基本 url
错误请求 - 无效的主机名 ASP.net Visual Studio 2015
如何获取部署在 Azure 网站上的 ASP.NET 5 应用程序的错误详细信息?
ASP.NET 5、EF 7 和 SQLite - SQLite 错误 1:“没有这样的表:博客”
ASP.NET WebHooks 和 Signalr 之间的区别
找不到方法:'!!0[] System.Array.Empty()'