在我的MVC应用程序中发生了一些非常奇怪的事情让我发疯.
在我的MVC页面上,在用户被选中后,它的登录应该在 HTML上“渲染”两次.
一旦形成
在我的MVC页面上,在用户被选中后,它的登录应该在 HTML上“渲染”两次.
一旦形成
FrmNextStep('<Login>',... (where Model.SelectedUser.Login is used)
一旦形式的
<input id="SelectedLogin" name="SelectedLogin" value="<Login>" type="hidden"> (where "Model".SelectedLogin is used)
但第二个总是留空.
这真的很奇怪,因为尽管两个调用不完全相同,但返回值应该是.
if (Model.SelectedUser != null) { <span>Some value</span> <script type="scriptADResultComplete"> @{ var script = String.Format( @"FrmNextStep('{0}','{1}','{2}');",Model.SelectedUser.Login.Replace("'",@"\'"),Model.SelectedUser.FirstName.Replace("'",Model.SelectedUser.LastName.Replace("'",@"\'") ); @Html.Raw(script); } </script> } <input type="hidden" name="hfAction" /> <input type="hidden" name="hfUserLogin" /> @Html.HiddenFor(m => m.CurrentPage,new { id = "hfCurrentPage" }) @Html.HiddenFor(m => m.SelectedLogin); private User selectedUser; public User SelectedUser { get { if (this.selectedUser == null) { this.selectedUser = this.AllUsers.FirstOrDefault(user => user.Selected) ?? User.DefaultUser; } if (this.selectedUser == User.DefaultUser) { return null; } return this.selectedUser; } set { this.AllUsers.ForEach(user => user.Selected = (user == value)); this.selectedUser = null; } } public string SelectedLogin { get { return (this.SelectedUser ?? User.DefaultUser).Login; } set { this.SelectedUser = this.AllUsers.FirstOrDefault(user => user.Login == value); } }
当我调试代码时,在“呈现”阶段唯一调用选定登录并返回正确的登录.
Html.HiddenFor有什么错误吗?
解决方法
原文地址:https://www.jb51.cc/csharp/91223.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。