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