如何使用 post 方法在 ASP.net 核心 MVC 中显示内容
How do I use post method to display a content in ASP.net core MVC
我对 ASP.net 编程还很陌生,但我仍然熟悉 C# 和 C 语言。我最初被教导如何浏览 ASP.net Razor 页面。它简单易行。但是对于我的最终项目,我继续做了一个 ASP.net 核心 MVC 页面。到现在它都很好并且可以工作(工作原理是相似的),除了后端部分。在 razor 页面中,页面在一起,index.cshtml 和 index.cshtml.cs 在一个地方,但在 MVC 中不是这样。我很难理解如何在我的页面中使用 method="post"
。
我的剃须刀查看页面代码:
@{
ViewData["Title"] = "Lorem Ipsum Generator";
Layout = "/Views/Shared/_Layout.cshtml";
}
<style>
body {
/* Margin bottom by footer height */
margin-bottom: 60px;
font-family: Kalam, cursive;
}
nav {
height: 100%;
width: 100%;
left: 0;
right: 0;
top: 0;
bottom: 0;
position: absolute;
background: linear-gradient(135deg, #a8e6cf, #dcedc1, #ffd3b6, #ffaaa5, #ff8b94);
background-size: 200% 200%;
animation: rainbow 10s alternate infinite;
}
.JK {
padding: 15px 25px;
font-size: 24px;
text-align: center;
cursor: pointer;
outline: none;
color: #fff;
background-color: #04AA6D;
border: none;
border-radius: 15px;
box-shadow: 0 9px #999;
}
.JK:hover {
background-color: #3e8e41
}
.JK:active {
background-color: #3e8e41;
box-shadow: 0 5px #666;
transform: translateY(4px);
}
</style>
<html>
<body class="text-center">
<form method="post">
<h1 style="font-size:26px;">Lorem Ipsum Generator</h1>
<p>At this page, You will get to generate Lorem Ipsum text, at your desired size and format. Enjoy!</p>
<p>Enter Number of words to generate: <input id="wordx" type="text" value="10" /></p>
<p>Enter Number of paragraphs to generate: <input id="parax" type="text" value="2" /></p>
<p>Include Data and time at the end of the list? (Proxy is allowed!) <input type="radio" id="Y" name="Dt" />Yes <input type="radio" id="N" name="Dt" checked="checked" />No</p>
<p>If you have selected the option "Yes", Please choose a specific time and date: <input type="datetime-local" id="datetimex" /></p>
<p>Do you want the generator to start with "Lorem ipsum dolor sit amet" (Check the box, only if you want): <input type="checkbox" id="startx" />Yes</p>
<p><input type="submit" class="JK" value="Generate!" /></p>
</form>
</body>
</html>
我查看了这个页面:How to call POST method in .NET CORE MVC directly from Razor View? for a solution, but it didn't workout as thought. I am using this Lorem Lpsum generator: https://github.com/EdCharbeneau/Prototyping
任何帮助将不胜感激:)
如果你想知道如何使用form方法将post值传入MVC控制器,你就可以了解什么是MVC了。
MVC 表示模型视图和控制器。
MVC 是基于控制器构建的。每个控制器都会包含很多动作方法。
每个方法都包含自己的视图。
每个视图都有自己的模型。
在 asp.net 核心 MVC 中,我们通常使用表单标签助手来 post 请求后端 MVC 控制器。
例如:
MVC Home 控制器包含一个名为 home 的方法和 post 方法 test
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Test(int i) {
return Ok();
}
如果我想post i 参数到后端,我应该修改视图以添加以下代码:
<form asp-action="test" asp-controller="Home" method="post">
<input id="test" name="i" type="text" />
<input type="submit" value="test" />
</form>
如果你点击按钮,它会post输入i的值到后端测试方法。如下图:
此外,Lorem Lpsum 生成器似乎是为 ASP.NET MVC 而不是 asp.net 核心构建的。这在 asp.net 5/ asp.net 内核中可能不起作用。
我对 ASP.net 编程还很陌生,但我仍然熟悉 C# 和 C 语言。我最初被教导如何浏览 ASP.net Razor 页面。它简单易行。但是对于我的最终项目,我继续做了一个 ASP.net 核心 MVC 页面。到现在它都很好并且可以工作(工作原理是相似的),除了后端部分。在 razor 页面中,页面在一起,index.cshtml 和 index.cshtml.cs 在一个地方,但在 MVC 中不是这样。我很难理解如何在我的页面中使用 method="post"
。
我的剃须刀查看页面代码:
@{
ViewData["Title"] = "Lorem Ipsum Generator";
Layout = "/Views/Shared/_Layout.cshtml";
}
<style>
body {
/* Margin bottom by footer height */
margin-bottom: 60px;
font-family: Kalam, cursive;
}
nav {
height: 100%;
width: 100%;
left: 0;
right: 0;
top: 0;
bottom: 0;
position: absolute;
background: linear-gradient(135deg, #a8e6cf, #dcedc1, #ffd3b6, #ffaaa5, #ff8b94);
background-size: 200% 200%;
animation: rainbow 10s alternate infinite;
}
.JK {
padding: 15px 25px;
font-size: 24px;
text-align: center;
cursor: pointer;
outline: none;
color: #fff;
background-color: #04AA6D;
border: none;
border-radius: 15px;
box-shadow: 0 9px #999;
}
.JK:hover {
background-color: #3e8e41
}
.JK:active {
background-color: #3e8e41;
box-shadow: 0 5px #666;
transform: translateY(4px);
}
</style>
<html>
<body class="text-center">
<form method="post">
<h1 style="font-size:26px;">Lorem Ipsum Generator</h1>
<p>At this page, You will get to generate Lorem Ipsum text, at your desired size and format. Enjoy!</p>
<p>Enter Number of words to generate: <input id="wordx" type="text" value="10" /></p>
<p>Enter Number of paragraphs to generate: <input id="parax" type="text" value="2" /></p>
<p>Include Data and time at the end of the list? (Proxy is allowed!) <input type="radio" id="Y" name="Dt" />Yes <input type="radio" id="N" name="Dt" checked="checked" />No</p>
<p>If you have selected the option "Yes", Please choose a specific time and date: <input type="datetime-local" id="datetimex" /></p>
<p>Do you want the generator to start with "Lorem ipsum dolor sit amet" (Check the box, only if you want): <input type="checkbox" id="startx" />Yes</p>
<p><input type="submit" class="JK" value="Generate!" /></p>
</form>
</body>
</html>
我查看了这个页面:How to call POST method in .NET CORE MVC directly from Razor View? for a solution, but it didn't workout as thought. I am using this Lorem Lpsum generator: https://github.com/EdCharbeneau/Prototyping
任何帮助将不胜感激:)
如果你想知道如何使用form方法将post值传入MVC控制器,你就可以了解什么是MVC了。
MVC 表示模型视图和控制器。
MVC 是基于控制器构建的。每个控制器都会包含很多动作方法。
每个方法都包含自己的视图。
每个视图都有自己的模型。
在 asp.net 核心 MVC 中,我们通常使用表单标签助手来 post 请求后端 MVC 控制器。
例如:
MVC Home 控制器包含一个名为 home 的方法和 post 方法 test
public IActionResult Index()
{
return View();
}
[HttpPost]
public IActionResult Test(int i) {
return Ok();
}
如果我想post i 参数到后端,我应该修改视图以添加以下代码:
<form asp-action="test" asp-controller="Home" method="post">
<input id="test" name="i" type="text" />
<input type="submit" value="test" />
</form>
如果你点击按钮,它会post输入i的值到后端测试方法。如下图:
此外,Lorem Lpsum 生成器似乎是为 ASP.NET MVC 而不是 asp.net 核心构建的。这在 asp.net 5/ asp.net 内核中可能不起作用。