我对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相关问答推荐

包含Include的低速EF核心查询

ASP.NET控制器上的默认接受媒体类型

我可以将图像添加到 ASP.NET 按钮吗?

格式化 DataBinder.Eval 数据

asp.net - 会话 - 多个浏览器选项卡 - 不同的会话?

IIS 中 ASP.net 应用程序的单独应用程序池

如何防止 Azure 网站进入Hibernate 状态?

如何从 web.config 中读取系统值并在 ASP.NET MVC C# 方法中使用

将存储过程中 Select 查询的结果返回到列表

最佳服务器端 .NET PDF 编辑库

ASP.net 与 PHP( Select 什么)

可空日期时间转换

如何获取 ActionLink 的工具提示?

.NET 上的 HTTP/2(HTTP2 或 SPDY)

导航到本地 IIS Express 时,Chrome 会返回错误请求 - 请求太长

MSBuild DeployOnBuild=true 不发布

通过 CultureInfo 格式化字符串

在 ASP.NET Web API 2 中禁用 *all* 异常处理(为我自己腾出空间)?

Page.IsPostBack 和 Page.IsCallBack 有什么区别?

如何调试 w3wp clr.dll 错误