ASP.NET MVC将ActionLink中的字符串传递给控制器
本文关键字:字符串 控制器 NET MVC ActionLink ASP | 更新日期: 2023-09-27 18:15:56
向控制器传递参数为空。从例子中我看到我正确地使用了重载。任何帮助,非常感谢
@{
foreach (string str in ViewBag.ServerNames)
{
<ul>
<img src="../../Content/Images/my_computer.png" alt="Computer Name"/>
<li >@Html.ActionLink(linkText: str.ToString(),actionName: "Index",controllerName:"Customer",
routeValues:new{str = str.ToString()} , htmlAttributes: null)</li>
</ul>
}
}
public ActionResult Index(string conName)
{
Response.Write("con name = " + conName);
Response.End();
string con = ConfigurationManager.ConnectionStrings[conName].ConnectionString;
trakman_Entities db = new trakman_Entities(con);
return View(db.customers.ToList());
}
浏览器源代码
<ul>
<img src="../../Content/Images/my_computer.png" alt="Computer Name"/>
<li ><a href="/Customer/Index/DefaultConnection">DefaultConnection</a></li>
</ul>
<ul>
<img src="../../Content/Images/my_computer.png" alt="Computer Name"/>
<li ><a href="/Customer/Index/trakman_Entities">trakman_Entities</a></li>
</ul>
<ul>
<img src="../../Content/Images/my_computer.png" alt="Computer Name"/>
<li ><a href="/Customer/Index/trakman_Entities1">trakman_Entities1</a></li>
</ul>
您应该在操作链接中提供正确的参数名称,此处不需要指定参数:)
@{
foreach (string str in ViewBag.ServerNames)
{
<ul>
<img src="../../Content/Images/my_computer.png" alt="Computer Name"/>
<li >@Html.ActionLink(str.ToString(),"Index","Customer",
new{conName= str.ToString()} , null)</li>
</ul>
}
如果您正在使用MVC开箱即用,那么它只可能与一个名为id的参数一起工作,该参数接受int。要做到这一点,您需要在URL中显式地定义参数,如下所示:
<a href="/Customer/Index/?conName=trakman_Entities">trakman_Entities</a>