为什么“ IsPost”和“ AsPost”下划线为红色?

时间:2019-02-19 12:56:48

标签: c# html razor razor-pages

我正在尝试对数据库查询进行编程,但是在“ 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>
  

那是带有完整代码的更新版本。我希望您可以这样解决。   显示的错误代码“ CS0103 C#名称在当前上下文中不存在”。

1 个答案:

答案 0 :(得分:0)

目前尚不清楚为什么要在实际视图中知道请求是否为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>
}