Asp.net mvc 4 将模型从视图传递到控制器
我想把模型传递给控制器的Post方法。当方法被调用时,它为内容显示空值,为Id显示0。理想情况下,它应该包含它所显示的模型的值 视图: 型号: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
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);
});
}