如何通过锚标记使用任何 MVC5 控制器的参数调用索引视图?
How to call Index View with parameter of any MVC5 controller via anchor tag?
我有一个 Mvc 控制器
public class ApplicationsController : Controller
{
// GET: Applicants/Applications
public ActionResult Index(Guid? ApplicationId)
{
//some work with the ApplicationId
return View("Application Details");
}
}
在我的另一个HTML页面中有一个锚标记,我想通过它调用这个控制器的默认视图(索引视图)。 URL 应该是:
http://localhost:66666/Applicants/Applications/xxxxxxxxxxxxxxxxxxxxxxxxx
我正在尝试通过锚标记调用它:
<script id="applicationDetailstemplate" type="text/x-jsrender">
<a href="../../../Applicants/Applications/{{:id}})">{{:position}}</a>
</script>
url 正确,但从未调用该操作。如果我从锚标记中删除 id,则会调用控制器视图,但 ApplicationId 为空。我怎样才能传递 ID?
我怀疑,除非您更改了默认路由规则,否则您需要将其写为
../../../Applicants/Applications?ApplicationId={{:id}}
通常情况下,您将 ID 放入路径(而不是查询字符串)的形式仅在您的操作方法签名中的变量字面上只是 "id"(不是任何其他名称)时才有效。
此外,如果这是视图的一部分,请考虑使用 HTML 助手来确保始终为路径的主要部分生成正确的 URL,例如:
@Url.Action("Applicants", "Applications")?ApplicationId={{:id}}
谢谢@Adyson
谢谢你的回答。其实我知道你给出的答案,但在 url 中,我不想让额外的 applicantId 出现。所以我尝试了一下,发现:
1) <a href="../../../Applicants/Applications/Index/{{:id}}">{{:position}}</a>
使用传递的 Id 调用索引视图。但在 url 索引会来。
2) <a href="../../../Applicants/Applications">{{:position}}</a>
默认索引视图可以通过此方法调用并且 url 将是 http://localhost:66666/Applicants/Applications
3) <a href="../../../Applicants/Applications/{{:id}}">{{:position}}</a>
无论如何都行不通。
最后我将索引视图重命名为详细视图并安顿下来。仍然知道不能调用 index 而不是它出现在 URL 中并且 Id 被传递到视图中。
我有一个 Mvc 控制器
public class ApplicationsController : Controller
{
// GET: Applicants/Applications
public ActionResult Index(Guid? ApplicationId)
{
//some work with the ApplicationId
return View("Application Details");
}
}
在我的另一个HTML页面中有一个锚标记,我想通过它调用这个控制器的默认视图(索引视图)。 URL 应该是:
http://localhost:66666/Applicants/Applications/xxxxxxxxxxxxxxxxxxxxxxxxx
我正在尝试通过锚标记调用它:
<script id="applicationDetailstemplate" type="text/x-jsrender">
<a href="../../../Applicants/Applications/{{:id}})">{{:position}}</a>
</script>
url 正确,但从未调用该操作。如果我从锚标记中删除 id,则会调用控制器视图,但 ApplicationId 为空。我怎样才能传递 ID?
我怀疑,除非您更改了默认路由规则,否则您需要将其写为
../../../Applicants/Applications?ApplicationId={{:id}}
通常情况下,您将 ID 放入路径(而不是查询字符串)的形式仅在您的操作方法签名中的变量字面上只是 "id"(不是任何其他名称)时才有效。
此外,如果这是视图的一部分,请考虑使用 HTML 助手来确保始终为路径的主要部分生成正确的 URL,例如:
@Url.Action("Applicants", "Applications")?ApplicationId={{:id}}
谢谢@Adyson 谢谢你的回答。其实我知道你给出的答案,但在 url 中,我不想让额外的 applicantId 出现。所以我尝试了一下,发现:
1) <a href="../../../Applicants/Applications/Index/{{:id}}">{{:position}}</a>
使用传递的 Id 调用索引视图。但在 url 索引会来。
2) <a href="../../../Applicants/Applications">{{:position}}</a>
默认索引视图可以通过此方法调用并且 url 将是 http://localhost:66666/Applicants/Applications
3) <a href="../../../Applicants/Applications/{{:id}}">{{:position}}</a>
无论如何都行不通。
最后我将索引视图重命名为详细视图并安顿下来。仍然知道不能调用 index 而不是它出现在 URL 中并且 Id 被传递到视图中。