【发布时间】:2023-03-14 02:44:01
【问题描述】:
鉴于此Edit.cshtml:
@model User
<form asp-action="Edit">
<component type="typeof(EditUser)" render-mode="ServerPrerendered" param-User="Model" />
<input type="submit" value="Save" />
</form>
还有这个EditUser.razor:
<input class="form-control" type="text" @bind-value="User.Name" />
@code {
[Parameter]
public User User { get; set; }
}
使用这个User.cs 模型:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
}
还有这个UserController.cs:
// GET
public async Task<IActionResult> Edit(int id)
{
var user = await _context.Users.FindAsync(id);
if (user == null)
{
return NotFound();
}
return View(user);
}
[HttpPost]
public async Task<IActionResult> Edit(int id, [Bind("Id,Name")] User user)
{
if (ModelState.IsValid)
{
_context.Update(user);
await _context.SaveChangesAsync();
return RedirectToAction(nameof(Index));
}
return View(user);
}
但这似乎不起作用,因为传递给 Edit 方法的 User 是空的。如何将带有 Blazor 组件中输入值的用户传递给 UserController?有没有办法将 Blazor 组件的输入值获取到控制器中?
【问题讨论】:
标签: c# asp.net-mvc asp.net-core-mvc blazor