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

502 DotNet WebApplication的网关nginx已损坏

ASP.NET Core 延迟加载始终返回 null

由于 Blazor Change Detection API,组件重新渲染被跳过.如何避免?

Windows 命令行中的/p:是什么意思

如何将标头中的用户名/密码传递给 SOAP WCF 服务

如何删除字符串的定义部分?

如何在页面加载之前运行 JavaScript 代码?

OnCheckedChanged 事件未触发

解析 JSON 响应的最简单方法

HttpContext.Cache 过期

在 cookie 中存储多个值

如何更改 .ASPX 自动格式化设置 (Visual Studio)

如何使用 javascript 调用 ASP.NET c# 方法

带有邮箱地址参数的 WebApi 方法从 HttpClient 返回 404

IIS 10 上的 ASP.NET Core 404 错误

如何从 SQL Server 2008 本身获取客户端 IP 地址?

显示 ModalPopupExtender 时如何指定要运行的 javascript

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

禁用文本框的模型绑定

如何使用实体框架执行原始 SQL 查询而无需使用模型?