最重要的是什么。
我的表单中包含新的asp-...
语法:
<form asp-controller="Test" asp-action="Edit" method="post" class="form-horizontal" role="form">
<div class="form-horizontal">
<div asp-validation-summary="ValidationSummary.All" class="text-danger"></div>
...
</div>
</form>
回发自定义类:
[HttpPost]
[ValidateAntiForgeryToken]
public IActionResult Edit(CustomClass object)
{
...
}
但是,我想让它回发两个不同的对象。有没有一种新的/正确的方法来使用Core和asp-...
语法?
如果没有,那么最好的方法是什么?
答案 0 :(得分:1)
如果我理解正确,这应该适合你。
您的ViewModel及其包含的类:
public class TestViewModel
{
public Object1 Test1 { get; set; }
public Object2 Test2 { get; set; }
public TestViewModel()
{
}
public TestViewModel(Object1 one, Object2 two)
{
Test1 = one;
Test2 = two;
}
}
public class Object1
{
public string TestString1 { get; set; }
}
public class Object2
{
public string TestString2 { get; set; }
}
观点:
@model TestViewModel
<form asp-controller="Admin" asp-action="Test" method="post" role="form">
<label asp-for="@Model.Test1.TestString1"></label>
<input asp-for="@Model.Test1.TestString1" />
<label asp-for="@Model.Test2.TestString2"></label>
<input asp-for="@Model.Test2.TestString2" />
<button type="submit">submit</button>
</form>
&#13;
最后控制器动作:
public IActionResult Test()
{
Object1 obj1 = new Object1() { TestString1 = "test1" };
Object2 obj2 = new Object2() { TestString2 = "test2" };
TestViewModel vm = new TestViewModel(obj1, obj2);
return View(vm);
}
[HttpPost]
public IActionResult Test(TestViewModel vm)
{
_logger.LogDebug(vm.Test1.TestString1);
_logger.LogDebug(vm.Test2.TestString2);
return View(vm);
}