为什么 "IsPost" 和 "AsPost" 下划线是红色的?
Why is the "IsPost" and "AsPost" underlined red?
我正在尝试编写数据库查询程序,但 "IsPost" 和 "AsPost" 下方总是有一条红线。
我需要做什么才能使其正常工作?
感谢您的帮助:)
@page
@model AboutModel
@{
ViewData["Title"] = "Datenverzeichnis";
}
<h2>@ViewData["Title"]</h2>
<form method="post">
@{
if (IsPost)
{
string materialnumber = Request.Form["materialnumber"];
int serialnumber = Request.Form["serialnumber"].AsInt();
<text>
You entered: <br />
Material Number: @materialnumber <br />
Serial Number: @serialnumber <br />
</text>
}
}
<p>
<div>
<label for="text">Materialnummer</label>
<input type="text" id="matn">
<label for="text">ID</label>
<input type="text" id="id">
</div>
<div>
<input type="submit" value="Bestätigen" class="submit" />
<button type="button" id="clear"
onclick="document.getElementById('matn').value = '';
document.getElementById('id').value = ''">
Löschen
</button>
</div>
</p>
@{
<table>
<thead>
<tr>
<td width="5%">MaterialNumber</td>
<td width="5%">SerialNumber</td>
<td width="10%">Source</td>
<td width="30%">Name</td>
<td width="10%">Status</td>
<td width="20%">URL</td>
</tr>
</thead>
<tbody>
@{
foreach (var deviceInfo in Model.DeviceInfos)
{
<tr>
<td>@deviceInfo.MaterialNumber</td>
<td>@deviceInfo.SerialNumber</td>
<td>@deviceInfo.Source</td>
<td>@deviceInfo.Name</td>
<td>@deviceInfo.Status</td>
<td>@deviceInfo.Url</td>
</tr>
}
}
</tbody>
</table>
}
</form>
That is the updated version with the whole code. I hope that you can figure it out this way.
"CS0103 C# The name does not exist in the current context" that is the shown error code.
不清楚为什么要知道请求在实际视图中是否是POST。您可以使用 HttpContext.Request.Method
。以下代码可能对您有用:
if (this.Context.Request.Method == "POST")
{
string materialnumber = this.Context.Request.Form["materialnumber"];
string serialnumber = this.Context.Request.Form["serialnumber"];
<text>
You entered: <br />
Material Number: @materialnumber <br />
Serial Number: @serialnumber <br />
</text>
}
另一种方法是在发布时在控制器中设置一个值。这样的事情可能会奏效:
[HttpPost] // --> this is a POST request
public IActionResult MyAction()
{
ViewBag.IsPost = true;
return View();
}
那么在你看来:
if (ViewBag.IsPost)
{
string materialnumber = Request.Form["materialnumber"];
string serialnumber = Request.Form["serialnumber"];
<text>
You entered: <br />
Material Number: @materialnumber <br />
Serial Number: @serialnumber <br />
</text>
}
我正在尝试编写数据库查询程序,但 "IsPost" 和 "AsPost" 下方总是有一条红线。 我需要做什么才能使其正常工作?
感谢您的帮助:)
@page
@model AboutModel
@{
ViewData["Title"] = "Datenverzeichnis";
}
<h2>@ViewData["Title"]</h2>
<form method="post">
@{
if (IsPost)
{
string materialnumber = Request.Form["materialnumber"];
int serialnumber = Request.Form["serialnumber"].AsInt();
<text>
You entered: <br />
Material Number: @materialnumber <br />
Serial Number: @serialnumber <br />
</text>
}
}
<p>
<div>
<label for="text">Materialnummer</label>
<input type="text" id="matn">
<label for="text">ID</label>
<input type="text" id="id">
</div>
<div>
<input type="submit" value="Bestätigen" class="submit" />
<button type="button" id="clear"
onclick="document.getElementById('matn').value = '';
document.getElementById('id').value = ''">
Löschen
</button>
</div>
</p>
@{
<table>
<thead>
<tr>
<td width="5%">MaterialNumber</td>
<td width="5%">SerialNumber</td>
<td width="10%">Source</td>
<td width="30%">Name</td>
<td width="10%">Status</td>
<td width="20%">URL</td>
</tr>
</thead>
<tbody>
@{
foreach (var deviceInfo in Model.DeviceInfos)
{
<tr>
<td>@deviceInfo.MaterialNumber</td>
<td>@deviceInfo.SerialNumber</td>
<td>@deviceInfo.Source</td>
<td>@deviceInfo.Name</td>
<td>@deviceInfo.Status</td>
<td>@deviceInfo.Url</td>
</tr>
}
}
</tbody>
</table>
}
</form>
That is the updated version with the whole code. I hope that you can figure it out this way. "CS0103 C# The name does not exist in the current context" that is the shown error code.
不清楚为什么要知道请求在实际视图中是否是POST。您可以使用 HttpContext.Request.Method
。以下代码可能对您有用:
if (this.Context.Request.Method == "POST")
{
string materialnumber = this.Context.Request.Form["materialnumber"];
string serialnumber = this.Context.Request.Form["serialnumber"];
<text>
You entered: <br />
Material Number: @materialnumber <br />
Serial Number: @serialnumber <br />
</text>
}
另一种方法是在发布时在控制器中设置一个值。这样的事情可能会奏效:
[HttpPost] // --> this is a POST request
public IActionResult MyAction()
{
ViewBag.IsPost = true;
return View();
}
那么在你看来:
if (ViewBag.IsPost)
{
string materialnumber = Request.Form["materialnumber"];
string serialnumber = Request.Form["serialnumber"];
<text>
You entered: <br />
Material Number: @materialnumber <br />
Serial Number: @serialnumber <br />
</text>
}