C# Razor页面-模型数组始终为空
我想要一个绑定到数组的文本框,以便在表单更改时发布表单 我一直在跟踪以使其工作,但我的模型上的属性始终为空。为什么? 模型C# Razor页面-模型数组始终为空,c#,razor,C#,Razor,我想要一个绑定到数组的文本框,以便在表单更改时发布表单 我一直在跟踪以使其工作,但我的模型上的属性始终为空。为什么? 模型 public class TestModel { public int[] MyInts; } 控制器 public ActionResult Index(TestModel model) { if (model.MyInts == null) // <-- Always true { model.MyInts = new i
public class TestModel
{
public int[] MyInts;
}
控制器
public ActionResult Index(TestModel model)
{
if (model.MyInts == null) // <-- Always true
{
model.MyInts = new int[] { 1, 2, 3, 4 };
}
}
public ActionResult索引(TestModel)
{
如果(model.MyInts==null)//model.MyInts[i],则新建{onchange=“this.form.submit();”)
}
TestModel
中的MyInts
声明为字段
相反,它必须是带有get
和set
的公共属性
将其更改为:
public class TestModel
{
public int[] MyInts { get; set; }
}
此外,如注释中所述,控制器必须包含GET和POST索引
操作方法
public class TestController : Controller
{
public ActionResult Index()
{
var viewModel = new TestModel {
MyInts = new [] { 1, 2, 3, 4 }
};
return View(viewModel);
}
[HttpPost()]
public ActionResult Index(TestModel model)
{
if (model.MyInts == null)
{
model.MyInts = new int[] { 1, 2, 3, 4 };
}
// ...
return RedirectToAction("Index");
}
}
TestModel
中的MyInts
声明为字段
相反,它必须是带有get
和set
的公共属性
将其更改为:
public class TestModel
{
public int[] MyInts { get; set; }
}
此外,如注释中所述,控制器必须包含GET和POST索引
操作方法
public class TestController : Controller
{
public ActionResult Index()
{
var viewModel = new TestModel {
MyInts = new [] { 1, 2, 3, 4 }
};
return View(viewModel);
}
[HttpPost()]
public ActionResult Index(TestModel model)
{
if (model.MyInts == null)
{
model.MyInts = new int[] { 1, 2, 3, 4 };
}
// ...
return RedirectToAction("Index");
}
}
是否可以显示端点调用的输入json。索引是get
而不是Post
。默认情况下,您需要创建另一个方法来模拟表单的Post
。如果您希望在默认情况下绑定数组,请松开空检查,并使用返回视图(模型)
@greg将内容绑定到Get
,即使在我的其他表单(模型没有数组)中也可以使用相同的方法。我给出了您的建议。我创建了另一个方法,相同的签名但不同的名称,但没有用。那么,您希望它做什么呢?只需在更改时更新数组?是否可以显示调用端点的输入json。索引是get
而不是Post
。默认情况下,您需要创建另一个方法来模拟表单的Post
。如果您希望在默认情况下绑定数组,请松开空检查,并使用返回视图(模型)
@greg将内容绑定到Get
,即使在我的其他表单(模型没有数组)中也可以使用相同的方法。我给出了您的建议。我创建了另一个方法,相同的签名但不同的名称,但没有用。那么,您希望它做什么呢?只需在更改时更新阵列?谢谢,我忘记了这件蠢事!FWIW,我没有为单独的GET/POST方法烦恼,仍然有效。谢谢你,对我来说忘记是多么愚蠢的事情!FWIW,我没有使用单独的GET/POST方法,仍然有效。