在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的值。