如何通过锚标记使用任何 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 被传递到视图中。