Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/286.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将数据从@Html.DisplayFor传递到控制器时为空值_C#_Asp.net Mvc_Razor - Fatal编程技术网

C# 将数据从@Html.DisplayFor传递到控制器时为空值

C# 将数据从@Html.DisplayFor传递到控制器时为空值,c#,asp.net-mvc,razor,C#,Asp.net Mvc,Razor,我需要通过ViewModel将Razor视图页面上显示的数据传递给控制器。用户在@Html.EditorFor中输入的值已成功传递,但@Html.DisplayFor中的数据未成功传递。我错过了什么 @using (Html.BeginForm()) { @Html.AntiForgeryToken() <table> <tr> <td style="text-align: center; vertical-a

我需要通过ViewModel将Razor视图页面上显示的数据传递给控制器。用户在@Html.EditorFor中输入的值已成功传递,但@Html.DisplayFor中的数据未成功传递。我错过了什么

@using (Html.BeginForm())
{
    @Html.AntiForgeryToken()
    <table>
        <tr>
            <td style="text-align: center; vertical-align: middle;">
                <div class="main-container">
                    <h3 class="main-title" id="bold-title">
                        @Html.DisplayFor(model => model.EmailReceiver)
                    </h3>
                    <h3 class="main-title" id="thin-title">
                        @Html.DisplayFor(model => model.PurchaseDesc)
                    </h3>
                    @Html.EditorFor(model => model.EmailSender, new { htmlAttributes = new { @placeholder = "Your e-mail", @id = "e-mail" } })
                    @Html.EditorFor(model => model.CardNumber, new { htmlAttributes = new { @placeholder = "Your card number", @id = "card" } })
                    @Html.EditorFor(model => model.CardValidDate, new { htmlAttributes = new { @placeholder = "MM / YYYY", @id = "date" } })
                    @Html.EditorFor(model => model.CVV, new { htmlAttributes = new { @placeholder = "CVV", @id = "cvv" } })
                    <button class="button" id="pay-button" type="submit">
                        <div id="price">Pay @Html.DisplayFor(model => model.TotalAmount)$</div>
                        <br>
                        <div id="ok">Complete!</div>
                    </button>
                </div>
            </td>
        </tr>
    </table>
}
@使用(Html.BeginForm())
{
@Html.AntiForgeryToken()
@DisplayFor(model=>model.EmailReceiver)
@DisplayFor(model=>model.PurchaseDesc)
@EditorFor(model=>model.EmailSender,new{htmlAttributes=new{@placeholder=“Your-mail”,@id=“e-mail”})
@EditorFor(model=>model.cardname,new{htmlAttributes=new{@placeholder=“您的卡号”,@id=“card”})
@EditorFor(model=>model.CardValidDate,new{htmlAttributes=new{@placeholder=“MM/YYYY”,@id=“date”})
@EditorFor(model=>model.CVV,new{htmlAttributes=new{@placeholder=“CVV”,@id=“CVV”})
Pay@Html.DisplayFor(model=>model.TotalAmount)$

完成 }
您需要添加一个隐藏字段以返回这些只读值。使用
@Html.HiddenFor
生成一个等效的隐藏字段。

因此此隐藏字段应该与@Html.DisplayFor?是重复数据。我完全忘记了
@Html.DisplayFor
生成的内容,可能是
之类的内容,它们都将传回服务器。如果要将值传回服务器,则需要一个
元素。查看为
显示的
项生成的HTML。实际元素将取决于类型,因此它不会总是生成可以提交的输入标记。