Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.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# MVC HttpPost强类型模型null_C#_Asp.net Mvc_Http Post - Fatal编程技术网

C# MVC HttpPost强类型模型null

C# MVC HttpPost强类型模型null,c#,asp.net-mvc,http-post,C#,Asp.net Mvc,Http Post,视图模型如下所示: public class AsmenysInfoViewModel2 { public asmenys_info Asmenys_info { get; set; } public List<miestai> Miestai { get; set; } public string Test { get; set; } } @model MODELS.AsmenysInfoViewModel2 @{ ViewBag.Title =

视图模型如下所示:

public class AsmenysInfoViewModel2
{
    public asmenys_info Asmenys_info { get; set; }
    public List<miestai> Miestai { get; set; }
    public string Test { get; set; }
}
@model MODELS.AsmenysInfoViewModel2
@{
    ViewBag.Title = "Index";
}
@using (Html.BeginForm("Index", "AsmenysInfo", FormMethod.Post))
{
    @Html.ValidationSummary()
    @Html.TextBoxFor(m => m.Asmenys_info.adresas)       

    <input type="submit" value="Išsaugoti" />
}
我的观点是这样的:

public class AsmenysInfoViewModel2
{
    public asmenys_info Asmenys_info { get; set; }
    public List<miestai> Miestai { get; set; }
    public string Test { get; set; }
}
@model MODELS.AsmenysInfoViewModel2
@{
    ViewBag.Title = "Index";
}
@using (Html.BeginForm("Index", "AsmenysInfo", FormMethod.Post))
{
    @Html.ValidationSummary()
    @Html.TextBoxFor(m => m.Asmenys_info.adresas)       

    <input type="submit" value="Išsaugoti" />
}
@model MODELS.asmenysinfo视图model2
@{
ViewBag.Title=“Index”;
}
@使用(Html.BeginForm(“Index”,“AsmenysInfo”,FormMethod.Post))
{
@Html.ValidationSummary()
@Html.TextBoxFor(m=>m.Asmenys_info.adresas)
}
无论我使用EditorFor还是TextBoxFor,结果都是一样的。发布时我的模型属性“Asmenys_info”始终为空。如果我的类AsmenysInfoViewModel2不包含asmenys_信息类型属性,并且只包含“string,int等”(没有强类型),那么它就可以工作了。 我的问题是:


如何发布具有强类型属性且发布时不为空的视图模型?

使用另一个对象名称更改下一行

 public ActionResult Index(AsmenysInfoViewModel2 asmenys_info)
在上述方法中,请使用对象的任何其他名称,而不是asmenys\u info


因为当mvc框架将模型映射到对象时,ASMENYSINFOIEWMODEL 2类的asmenys_info和asmenys_info属性存在混淆。

您的模型有一个名为
asmenys_info
的属性,POST方法中的参数也被命名为
asmenys_info
。在内部,
DefaultModelBinder
读取表单数据的值,其中包括
Asmenys_info
的值,并尝试将属性
Asmenys_info
设置为该值,但失败,因为没有从
字符串
转换为复杂对象

例如,将参数的名称更改为除模型中的属性名称以外的任何名称,它将绑定良好

[HttpPost]
public ActionResult Index(AsmenysInfoViewModel2 model)

尝试将
public ActionResult Index(asmenys\u info asmenys\u info)
更改为
public ActionResult Index(asmenysinfo视图模型2 asmenys\u info)
同样的问题。我在这里贴错代码了。就像你说的。我编辑了我的帖子,以更正引起我问题的代码。我认为问题在于发布时没有asmenys_info类的实例,因此无法设置m.asmenys_info.adresas属性。但我不知道如何解决它。根据我的经验,复杂的模型表单post是不可能的。尽管你可以通过在jquery中构建
json
对象然后发布表单来实现。请更新asmenys_信息类。我猜问题出在哪里,但我需要修改AsmenysInfo视图模型2中使用的asmenys_信息类