【发布时间】:2019-08-05 10:10:54
【问题描述】:
我有一个接收模型 ID 的 PartialView,然后当您单击链接时,会将模型 ID 发送到控制器。我的问题是有两种方法可以将数据从 View 发送到 Controller,但只有一种对我有用。这是什么原因?
这对我来说非常有效
<a type="button" class="btn btn-primary" asp-controller="Dictionary" asp-action="Edit" asp-route-wordId="@Model"><i class="fas fa-edit"></i></a>
这个没用
<a type="button" class="btn btn-success" href="@Url.Action("Edit/" + Model)"><i class="far fa-list-alt"></i></a>
我的问题是,如果我将模型 ID 传递给 URL,为什么最后一个不起作用并返回 null
这是我的完整 PartialView,它接收模型 ID 并且可以工作
@model int
<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.7.2/css/all.css" integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr" crossorigin="anonymous">
<td style="width:150px">
<div class="btn-group" role="group">
<a type="button" class="btn btn-primary" asp-controller="Dictionary" asp-action="Edit" asp-route-wordId="@Model"><i class="fas fa-edit"></i></a>
</div>
</td>
这是我的控制器函数,用于接收数据
public async Task<IActionResult> Edit(int? wordId)
{
if(wordId == null)
{
return NotFound();
}
var word = await _db.Dictionaries.FindAsync(wordId);
if(word == null)
{
return NotFound();
}
return View(word);
}
【问题讨论】:
标签: c# asp.net .net asp.net-mvc asp.net-mvc-4