Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.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
Asp.net mvc 4 将模型从视图传递到控制器_Asp.net Mvc 4_Razor - Fatal编程技术网

Asp.net mvc 4 将模型从视图传递到控制器

Asp.net mvc 4 将模型从视图传递到控制器,asp.net-mvc-4,razor,Asp.net Mvc 4,Razor,我想把模型传递给控制器的Post方法。当方法被调用时,它为内容显示空值,为Id显示0。理想情况下,它应该包含它所显示的模型的值 视图: 型号: public class WorldModel { public int Id { get; set; } public string Content { get; set; } } 您应该添加包含您的值的隐藏输入: @Html.HiddenFor(model => model.Id) @Htm

我想把模型传递给控制器的Post方法。当方法被调用时,它为内容显示空值,为Id显示0。理想情况下,它应该包含它所显示的模型的值

视图:

型号:

public class WorldModel
    {
        public int Id { get; set; }

        public string Content { get; set; }
    }

您应该添加包含您的值的隐藏输入:

@Html.HiddenFor(model => model.Id)
@Html.HiddenFor(model => model.Content)

这是因为模型绑定器将搜索输入(如文本框或隐藏字段)以获取值并将其与模型属性关联(基于输入名称)。
DisplayFor
没有创建任何输入,因此在您提交表单时,模型绑定器无法找到您的值。

我认为
@Html.DisplayFor
值未提交


尝试为相同的值包含
@Html.HiddenFor

您可以使用from
@Html.Hidden(“#IdComponent”)
将值从
.cshtml
表单传递到控制器,以及:

在.cshtml中: 在第页中,您有:

@model Owj_SDK.Models.Service.Ticket.Ticket
@Html.Hidden("accntid")
在身体上有:

    <a OnClick="testfnc('@Model.accntid')"> </a>

谢谢你的帮助。我已经将id和内容的隐藏字段包含在显示字段中,现在传递了值。但旧值不会被清除它显示旧值,即使新值被分配给id和内容字段并显示在屏幕上。为什么会这样?我必须调用ModelState.Clear()。实际上,通常当您从post操作返回视图时,这意味着验证失败,您希望显示提交的数据以更正它们。这就是
ModelState
保留旧值的原因。成功后,通常会重定向到
GET
操作,如果需要,还会添加一些参数。但是,如果适合您,也可以清除
ModelState
@model Owj_SDK.Models.Service.Ticket.Ticket
@Html.Hidden("accntid")
    <a OnClick="testfnc('@Model.accntid')"> </a>
function referralToColleagueTicketModal(accntide) {
    debugger
    $.get('/Ticket/referralToColleagueTicketModal/', { 'accntid': accntide}, function (html) {
        $('#dvtckdelmodal').html(html);
        $('#dvtckdelmodal').modal('show');
        $('#accntid').val(accntide);
    });
}