我正在努力找出最好的方法,并且已经看到了很多建议,但是无法让任何事情正常工作,而宁愿先做最好的方法。
这是Controller上的ActionResult:
public ActionResult Details(string selectedArtist)
{
//other code
return View(selectedArtist)
}
这是客户端上的javascript:
$('#results').on('click', '.item', function () {
var selectedArtist = $(this).data('artistInfo');
var selectedId = encodeURIComponent('ARE602H1187FB3B8F8')
var url = '@Url.Action("Details", "Artist", new { id = "__id__" })';
window.location.href = url.replace('__id__', selectedId);
})
理想情况下,我希望将selectedArtist对象传递给控制器。它基本上是一个javascript类,匹配我的Artist模型。现在虽然作为一个测试我只是试图将一个Id作为一个字符串传递给控制器并且无法将其传递给它,但它总是以NULL形式出现。
它正在建造的请求对我来说非常好“...... /艺术家/细节/ ARE602H1187FB3B8F”。但是,我正在调试,控制器上的参数总是为NULL。
我错过了什么吗?和/或有更好的方法吗?提前致谢。
答案 0 :(得分:5)
两个选项。更新路由表以正确地允许将其slug“ARE602H1187FB3B8F”的路由路由到适用的操作方法。或者,您可以将id
作为查询字符串参数传递,从而使用路由表中的默认路由:
... Artist/Details?selectedArtist=ARE602H1187FB3B8F