C# C ASP.NET在dropdownlist更改的post方法中的传递模型
我试图在Razor代码中DropDownList发生变化时传递我的模型,但我的模型信息没有传递到post方法,即使调用了post方法 在我的剃刀里:C# C ASP.NET在dropdownlist更改的post方法中的传递模型,c#,asp.net,asp.net-mvc,C#,Asp.net,Asp.net Mvc,我试图在Razor代码中DropDownList发生变化时传递我的模型,但我的模型信息没有传递到post方法,即使调用了post方法 在我的剃刀里: @model Namespace.Models.MyModel @using (Html.BeginForm("myFunc", "Home", FormMethod.Post, new { myModel = Model })) { @Html.DropDownListFor(m => m.SelectedType, new Se
@model Namespace.Models.MyModel
@using (Html.BeginForm("myFunc", "Home", FormMethod.Post, new { myModel = Model }))
{
@Html.DropDownListFor(m => m.SelectedType, new SelectList(Model.Types, "Id", "Desc", Model.SelectedType), new { @class = "form-control", style = "display: inline;", @onchange = "this.form.submit()" })
}
我的模型:
public class MyModel
{
public List<myData> myList = new List<myData>();
public List<myType> Types = new List<myType>();
public string SelectedType;
}
如果我在myFunc中放置一个断点,我可以看到它在我的DropDownList更改时进入,但是模型信息不会传递给函数。我肯定我错过的可能是一件小事,但我就是看不见
呈现的HTML是:
<form action="/Home/myFunc" myModel="Namespace.Models.MyModel" method="post">
<select class="form-control" id="SelectedType" name="SelectedType" onChange="(this.form).submit()" style="display: inline;">
<option selected="selected" value="FT">Fault</option>
<option value="QY">Query</option>
<option value="RQ">PM Request</option>
</select>
</form>
默认情况下,它只查看公共属性,而不查看字段 MVC将尝试按名称将请求数据绑定到操作参数。MVC将使用参数名及其公共可设置属性的名称查找每个参数的值。在上面的示例中,惟一的操作参数是id,MVC将其绑定到路由值中具有相同名称的值。除了路由值之外,MVC还将绑定来自请求各个部分的数据,并按照设置的顺序进行绑定 我把你的模型从最上面的改到最下面的,这样就成功了
public class MyModel
{
public List<myData> myList {get;set;}
public List<myType> Types{get;set;}
public string SelectedType {get;set;}
}
默认情况下,它只查看公共属性,而不查看字段 MVC将尝试按名称将请求数据绑定到操作参数。MVC将使用参数名及其公共可设置属性的名称查找每个参数的值。在上面的示例中,惟一的操作参数是id,MVC将其绑定到路由值中具有相同名称的值。除了路由值之外,MVC还将绑定来自请求各个部分的数据,并按照设置的顺序进行绑定 我把你的模型从最上面的改到最下面的,这样就成功了
public class MyModel
{
public List<myData> myList {get;set;}
public List<myType> Types{get;set;}
public string SelectedType {get;set;}
}
您的视图在@using语句下是否有@model MyModel行?MyModel not\u model您说模型信息不会传递给函数。您的意思是SelectedType属性为空还是值列表为空?视图模型和输入模型不是同一种类型!准备合适的输入模型。如果您不确定,请使用fiddler或浏览器工具检查帖子正文的确切内容。您的列表绝对不应填写在帖子上,但应填写SelectedType selected值。现在还不清楚为什么不是。您的视图在@using语句下是否有@model MyModel行?MyModel Not\u model您说模型信息不会传递给函数。您的意思是SelectedType属性为空还是值列表为空?视图模型和输入模型不是同一种类型!准备合适的输入模型。如果您不确定,请使用fiddler或浏览器工具检查帖子正文的确切内容。您的列表绝对不应填写在帖子上,但应填写SelectedType selected值。目前尚不清楚原因。可能值得进一步解释,默认情况下只序列化/反序列化公共属性,而不序列化字段。Will do正在试图找到一篇详细介绍它的好文章,但没有找到多少。也许可以很快解释一下。@RyanSchlueter谢谢Ryan,这确实有效,我不确定为什么though@badNameHere刚刚添加了一些信息。如果你需要更多的解释,请告诉我。谢谢,这是很有帮助的,对于前端开发来说还是比较新的,我已经在这方面停留了很久了。Goodluck成功访问2k Rep可能值得进一步解释,默认设置是只序列化/反序列化公共属性,而不是字段。Will do试图找到一篇详细介绍它的好文章,但没有找到太多。也许可以很快解释一下。@RyanSchlueter谢谢Ryan,这确实有效,我不确定为什么though@badNameHere刚刚添加了一些信息。如果你需要更多的解释,请告诉我。谢谢,这是很有帮助的,对于前端开发来说还是比较新的,我已经在这方面停留了很久了。祝你好运,成功晋级2k
public class MyModel
{
public List<myData> myList {get;set;}
public List<myType> Types{get;set;}
public string SelectedType {get;set;}
}