C# 将空参数从模型传递到控制器中的操作
我正在使用asp.net mvc应用程序,但遇到了一些问题: 我有一个包含操作链接的视图C# 将空参数从模型传递到控制器中的操作,c#,asp.net,asp.net-mvc,razor,C#,Asp.net,Asp.net Mvc,Razor,我正在使用asp.net mvc应用程序,但遇到了一些问题: 我有一个包含操作链接的视图 <form > <fieldset> <legend>Formulaire d'un client</legend> @if (Model.Count != 0){ foreach (string s in Model) { <a href="@Url.Action("Passer",
<form >
<fieldset>
<legend>Formulaire d'un client</legend>
@if (Model.Count != 0){
foreach (string s in Model)
{
<a href="@Url.Action("Passer", "Client",(object)@s)" style="color:blue" >@s</a>
<br />
}
}
else{
<label> Pas de projets actuellement</label>
}
</fieldset>
</form>
我的问题是参数s
,当我点击链接时,它总是null
为什么会发生这种情况?我怎样才能纠正它
我的问题是参数s,当我点击链接时,它总是空的
因为你的链接看起来像/Client/Passer/123
。您可以通过查看生成的HTML、使用Fiddler调试HTTP请求或单击链接后查看浏览器的地址栏来了解这一点
的第三个参数,routeValues
,是一个映射到调用的actionmethod参数的对象。由于ActionResult传递者的签名是string s
,因此需要传递一个名为s
的string属性的对象
所以改变
(object)@s
到
后者将导致创建一个匿名对象,其中包含一个字符串s
属性,该属性包含s
的值。您可能需要查看变量命名
我的问题是参数s,当我点击链接时,它总是空的
因为你的链接看起来像/Client/Passer/123
。您可以通过查看生成的HTML、使用Fiddler调试HTTP请求或单击链接后查看浏览器的地址栏来了解这一点
的第三个参数,routeValues
,是一个映射到调用的actionmethod参数的对象。由于ActionResult传递者的签名是string s
,因此需要传递一个名为s
的string属性的对象
所以改变
(object)@s
到
后者将导致创建一个匿名对象,其中包含一个字符串s
属性,该属性包含s
的值。您可能需要查看变量命名。试试这个
@Url.Action("Passer", "Client", new {s = s})
您没有将参数作为路由值传递。访问链接进行详细说明
参考:试试这个
@Url.Action("Passer", "Client", new {s = s})
您没有将参数作为路由值传递。访问链接进行详细说明
参考: