【发布时间】:2013-08-15 15:51:27
【问题描述】:
我的登录是部分视图。我将包含 tbl_profile 的 some 字段的模型传递给部分视图并填充它,然后我将填充的模型传递给 [HttpPost] 部分中的 actionresult 和... 但现在我在 [HttpGet] 部分遇到了麻烦。我在这行 cod " *@Html.Action("LogOn","Account")"* 上收到此错误。 我的代码:
[HttpGet]
public ActionResult LogOn(string returnUrl)
{
using (var db = new MyContext())
{
var AllFeatureToLog = db.tbl_profile.Select(u => new UsersClass.LogOn { username = u.username, password_User = u.password_User }).ToList();
return PartialView(AllFeatureToLog);
}
}
类:
public class UsersClass
{
public class LogOn
{
public string username { get; set; }
public string password_User { get; set; }
}
}
LogOn.cshtml:
@model MyProject.Models.UsersClass.LogOn
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<form class="signin-form">
@Html.TextBoxFor(m => m.username, new { @id = "username", @class = "input-block- level", @placeholder = "* enter username" })
@Html.TextBoxFor(m => m.password_User, new { @id = "password", @class = "input-block-level", @placeholder = "* enter pass" })
@Html.ValidationMessage("LoginError")
<label class="checkbox">
<input type="checkbox">remember me</label>
<button class="btn btn-medium btn-general input-block-level" type="submit"> enter</button>
</form>
}
错误:
Error executing child request for handler 'System.Web.Mvc.HttpHandlerUtil+ServerExecuteHttpHandlerAsyncWrapper'
【问题讨论】:
-
您是否尝试调试以获得遇到的确切错误。您发布的错误是一个高级错误,表明在渲染/执行部分视图时存在一些问题。
-
我在 [HttpGet] 块上断点。它一步一步地工作。但在“return PartialView(AllFeatureToLog);”行之后它显示错误:传入字典的模型项是“System.String”类型的,但该字典需要“PakalaMaster.Models.CentricModelClasses.zUsersClass+LogOn”类型的模型项。
-
所以问题是您的控制器操作显然返回了一个视图,其模型设置为
System.String类型,但视图的模型类型是PakalaMaster.Models.CentricModelClasses.zUsersClass+LogOn。 -
是的,我知道。但为什么?我在 AllFeatureToLog 中得到一个列表并将其发送到 view 。我很困惑。是否有另一种方法可以发送一些并非所有字段来查看?
-
如果您尝试
return PartialView(new UsersClass.LogOn());只是为了看看它是否能解决类型问题?