내보기는 다음 테이블 정의가 포함되어ASP.NET 면도기 : 매개 변수로 변수를 보내기
<table>
<thead>
<th>Title</th>
<th>Artist</th>
<th>Genre</th>
<th>Price</th>
</thead>
@foreach (var album in Model)
{
<tr>
<td>@album.Title</td>
<td>
@{
foreach (var artist in ViewBag.Artists)
{
if (artist.ArtistID == album.ArtistID)
{ @artist.Name }
}
}
</td>
<td>
@{
foreach (var genre in ViewBag.Genres)
{
if (genre.GenreID == album.GenreID)
{ @genre.Name }
}
}
</td>
<td>@album.Price</td>
<td>
<a asp-action="Details" asp-controller="Albums">Details </a>
<a asp-action="Edit" asp-controller="Albums">Edit </a>
<a asp-action="Delete" asp-controller="Albums">Delete</a>
</td>
</tr>
}
</table>
마지막 열의 Details
, Edit
및 Delete
옵션은 album
의 AlbumID
속성에 키가 될 필요가 변수를 사용하여 리디렉션이 적절한 앨범에서 작동하도록합니다. 나는 이것에 대한 매개 변수가 asp-parameter
일지도 모른다고 생각했다. 액션은 asp-action
에 의해 설정되었지만, 존재하지 않는 것처럼 보인다.
변수를 URL 매개 변수 (예 : /Albums/Details/var
)로 전달하는 적절한 방법은 무엇이며 다른 측면에서이 값을 검색하는 데 사용되는 이름은 무엇입니까?
Shyju의 대답은 매개 변수 전달과 관련이 있습니다. 지금까지 매개 변수를 검색하려는 시도는 다음과 같습니다.
<%=Url.RequestContext.RouteData.Values["id"]%>
-로드 할 수 없습니다. 유효하지 않은 문자 <
.
ViewContext.RouteData.Values["id"]
-로드하지 못했습니다. int
과 object
을 ==
을 사용하여 비교할 수 없습니다.
RouteData.Values["id"]
- 컴파일 오류가 발생했습니다. 이름이 현재 컨텍스트에 없습니다.
을 임명했다 가정하면? Details –
'@html.ActionLink ("Details", "Details", "Albums", new {albumID = album.ID}, null)'는 asp- * 속성을 사용하는 대신 작동합니까? – Bort
아니면 html 도우미 ?? @ Html.ActionLink (....) –