在ASP.NET Core 5 MVC中,你可以根据另一个模型更改模型的值,可以通过以下步骤实现:
首先,定义两个模型。假设第一个模型是Model1
,第二个模型是Model2
。
public class Model1
{
public int Id { get; set; }
public string Value { get; set; }
}
public class Model2
{
public int Id { get; set; }
public string NewValue { get; set; }
}
然后,在控制器中创建一个GET
方法和一个POST
方法。
public class HomeController : Controller
{
public IActionResult Index()
{
Model1 model1 = new Model1
{
Id = 1,
Value = "Initial value"
};
return View(model1);
}
[HttpPost]
public IActionResult Index(Model1 model1, Model2 model2)
{
if (ModelState.IsValid)
{
// 根据另一个模型的值更改模型的值
model1.Value = model2.NewValue;
// 执行其他操作
return RedirectToAction("Index");
}
return View(model1);
}
}
在GET
方法中,创建一个Model1
实例,并将其传递给Index
视图。
在POST
方法中,接收Model1
和Model2
作为参数。通过将Model2.NewValue
赋值给Model1.Value
,来更改Model1
的值。然后,执行其他操作,然后重定向到Index
视图。
最后,在视图中,使用Html.BeginForm
方法创建一个表单,并使用Html.TextBoxFor
方法为Model2.NewValue
创建一个输入框。
@model Model1
@using (Html.BeginForm())
{
@Html.LabelFor(m => m.Value)
@Html.TextBoxFor(m => m.Value)
@Html.LabelFor(m => m.NewValue)
@Html.TextBoxFor(m => m.NewValue)
}
这样,当你在表单中输入一个新的值并提交表单时,Model1.Value
的值将被更新为Model2.NewValue
的值。