【发布时间】:2018-06-10 11:16:48
【问题描述】:
我对 ASP.NET Core 完全陌生(2 周后),我需要使用 ASP.net 重新学习 Web 开发才能工作,是的,我试图弄清楚这一切。所以请原谅可能是菜鸟的问题。
我在将数据从 HTML 表单传递到模型然后传递到控制器时遇到问题,我无法弄清楚。这是我的问题。
这是基本的 HTML:
<form method="post" action="/FormProcWithModels" role="form">
<input asp-for="UserName" type="text" id="UserName" placeholder="Enter your Full Name" />
<input type="submit" />
</form>
这是模型:
namespace project001.Models
{
public class ContactPageModel
{
public string UserName{ get; set; }
}
}
这里是控制器:
编辑以显示更多代码。这是我的 GET 方法
[HttpGet]
public IActionResult Contact()
{
ViewBag.PageTitle = "This is the Contact page";
return View();
}
[HttpPost("FormProcWithModels")]
public IActionResult Contact(ContactPageModel model)
{
return Content($"The form username entered is {model.UserName}");
}
例如,当我在表单中输入“Jim”的名称并提交时,页面加载时显示“输入的表单用户名是:”,但名称没有通过。
我没有收到错误或任何错误,而且我还不够好,无法弄清楚为什么 数据为空。
提前感谢您提供的任何帮助。
编辑:
当我这样做时:
[HttpPost("FormProcWithoutModels")]
public IActionResult Contact(string uName)
{
string currentUser = uName;
ViewBag.PageTitle = "This is the Contact page";
//return View();
return Content($"The form username entered is {currentUser}");
}
它可以在没有模型的情况下工作。当我尝试使用模型时,它不起作用!
【问题讨论】:
-
如果这只是一个基础的学习项目,可以考虑上传到 Github 上让别人看看。问题中没有足够的信息来解决此问题。
-
由于输入的名称为
name="UserName",因此无法使用名为string uName的参数,因此您没有显示相关代码。 -
嗨@StephenMuecke,那是另一条路线。我用它来展示当我像这样进行数据传递时,它是如何工作的。注意 "FormProcwithoutModels" 与 "FormProcWithModel" 。对不起,如果我弄糊涂了
-
您显示的代码工作正常。如果它不适合你,那么它是由于你没有向我们展示的其他代码。
-
我很好奇,当您说您对 ASP.NET 核心完全陌生并且必须从头开始学习 Web 开发时,您之前使用的是什么?我对 ASP.NET Core 的学习曲线很感兴趣,它能让人们更轻松地使用 .NET Core...
标签: c# asp.net-core asp.net-core-mvc