Actionresult 的布尔问题
目标:
我想为我的actionresult Anvandare_Listaa 实现两个参数(一个字符串和一个布尔值)。
//
// GET: /Admin/Anvandare_Listaa
public ActionResult Anvandare_Listaa(string pAnvandaren, bool pBlivenAdministrator)
{
return View("Anvandare_Lista");
}
问题:
在我的操作结果中无法接收布尔值 pBlivenAdministrator。我收到错误消息。
参数字典包含一个 参数为空条目 不可为空的“pBlivenAdministrator” 为方法输入“System.Boolean” 'System.Web.Mvc.ActionResult Anvandare_Listaa(布尔值)' in 'BokButik1.Controllers.AdminController'。 可选参数必须是 引用类型、可为 null 的类型,或者 声明为可选参数。 参数名称:参数
如果我使用bool?而不是 bool 我不会得到任何价值。当我使用字符串时没有问题,这只是与操作结果中的 bool 相关的问题。
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
}
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Admin.Master" Inherits="System.Web.Mvc.ViewPage<BokButik1.ViewModels.AllaAnvandareViewModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Användare Lista
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Användare Lista</h2>
<table>
<tr>
<th>Användare</th>
<th>E-post</th>
<th>Administratör</th>
</tr>
<% foreach (var user in Model.AllaAnvandare) { %>
<tr>
<td>
<%: user.Anvandaren %>
</td>
<td>
<%: user.Epost%>
</td>
<td>
<%: user.BlivenAdministrator %>
</td>
<td>
<%: Html.ActionLink(Html.OmAdministratorBehorighet(user.BlivenAdministrator),
"Anvandare_Listaa", "Admin", new {pAnvandaren = user.Anvandaren, pBlivenAdministrator = user.BlivenAdministrator }) %>
</td>
</tr>
<% } %>
</table>
Goal:
I want to achieve two parameters (one string and one bool) to my actionresult Anvandare_Listaa.
//
// GET: /Admin/Anvandare_Listaa
public ActionResult Anvandare_Listaa(string pAnvandaren, bool pBlivenAdministrator)
{
return View("Anvandare_Lista");
}
Problem:
Can't recieve bool value pBlivenAdministrator in my action result. I recieve error message.
The parameters dictionary contains a
null entry for parameter
'pBlivenAdministrator' of non-nullable
type 'System.Boolean' for method
'System.Web.Mvc.ActionResult
Anvandare_Listaa(Boolean)' in
'BokButik1.Controllers.AdminController'.
An optional parameter must be a
reference type, a nullable type, or be
declared as an optional parameter.
Parameter name: parameters
If I use bool? instead of bool I won't get any value. There is no problem when I use string, it is only problem related to bool in the action result.
public class MvcApplication : System.Web.HttpApplication
{
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = UrlParameter.Optional } // Parameter defaults
);
}
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
RegisterRoutes(RouteTable.Routes);
}
}
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Admin.Master" Inherits="System.Web.Mvc.ViewPage<BokButik1.ViewModels.AllaAnvandareViewModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Användare Lista
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<h2>Användare Lista</h2>
<table>
<tr>
<th>Användare</th>
<th>E-post</th>
<th>Administratör</th>
</tr>
<% foreach (var user in Model.AllaAnvandare) { %>
<tr>
<td>
<%: user.Anvandaren %>
</td>
<td>
<%: user.Epost%>
</td>
<td>
<%: user.BlivenAdministrator %>
</td>
<td>
<%: Html.ActionLink(Html.OmAdministratorBehorighet(user.BlivenAdministrator),
"Anvandare_Listaa", "Admin", new {pAnvandaren = user.Anvandaren, pBlivenAdministrator = user.BlivenAdministrator }) %>
</td>
</tr>
<% } %>
</table>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
生成操作链接时:
您应确保为
pBlivenAdministrator
参数分配了一个值,以便生成的 HTML 如下所示:如果请求不包含
pBlivenAdministrator
> 参数你将得到这个异常。所以它应该是:或:
When you generate your action link:
you should make sure that the
pBlivenAdministrator
parameter is assigned a value so that the generated HTML looks like this:If the request doesn't contain the
pBlivenAdministrator
parameter you will be getting this exception. So it should be either:or:
创建一条带有 2 个参数的路由。默认路由仅采用单个参数“id”。使用您的参数 pAnvandaren 和 pAnvandaren 创建一条新路线。
Make a route that takes 2 arguments. The default route only takes a single argument "id." Create a new route with your arguments pAnvandaren and pAnvandaren.