MVC 查询页面查询后无法显示查询结果

笑开 2012-06-19 03:41:15
页面A上部为查询条件,下部为一个table显示查询的结果。
现在在查询条件输入后,通过断点能看到model里有数据了,但是返回后页面全部重置,查询的条件也被清空,table里还是初始打开时的数据,怎么解决呢,请指教~ 急等

第一次打开的初始页面
public ActionResult search()
{




按下页面的查询link后执行下面的action

[HttpPost]
public ActionResult search(dataModel passModel)
{
dataModel model = new dataModel();
if(string.isnullorEmpty(passModel.userName) == false)
{
var s = db.user.where(u => u.userName.Equals(passModel.userName));
model.userList = s;
}
return View(model);


...全文
352 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
royal_good 2012-08-29
  • 打赏
  • 举报
回复
学友哥你好!我遇到和你一样的问题,能把代码发给我吗,邮箱249645463@qq.com
笑开 2012-06-19
  • 打赏
  • 举报
回复
解决了
用<li id="check"><a href="#" onclick="document.forms[0].submit()">查询</a></li>替代
<%=Html.ActionLink("查找(I)", "InvestmentActivities", "InvestmentActivities", new { onclick = "return submitFormData()" })%></li>

就可以了。
暗夜雷丘 2012-06-19
  • 打赏
  • 举报
回复
ActionLink生成的是<a>标签,它是一个链接,是一次get请求,而在get之前执行一次post是因为js提交的原因吧。
暗夜雷丘 2012-06-19
  • 打赏
  • 举报
回复
你再加个断点,加在
public ActionResult InvestmentActivities()
{

}

应该是ActionLink,先执行js提交了一次post请求,再执行了一次GET请求。
笑开 2012-06-19
  • 打赏
  • 举报
回复
各位,找到原因了,我新增了个submit button,就可以正常查询出数据回来,下拉列表的选项也没有变。
问题在于使用link和使用submit button的不同。
为什么link就不可以呢?
笑开 2012-06-19
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 的回复:]
<%=Html.ActionLink("查找(I)", "InvestmentActivities", "InvestmentActivities", new { onclick = "return submitFormData()" })%></li>

这个查找的action,control是干什么呢? 好像不是提交到search的吧?
[/Quote]

页面A上部为查询条件,下部为一个table显示查询的结果。
现在在查询条件输入后,通过断点能看到model里有数据了,但是返回后页面全部重置,查询的条件也被清空,table里还是初始打开时的数据,怎么解决呢,请指教~ 急等

第一次打开的初始页面
public ActionResult InvestmentActivities()
{






[HttpPost]
public ActionResult InvestmentActivities(dataModel passModel)
{
dataModel model = new dataModel();
if(string.IsNullOrEmpty(passModel.userName) == false)
{
var s = db.user.where(u => u.userName.Equals(passModel.userName));
model.userList = s;
}
return View(model);



调用return 的时候,model里有数据的。
暗夜雷丘 2012-06-19
  • 打赏
  • 举报
回复
<%=Html.ActionLink("查找(I)", "InvestmentActivities", "InvestmentActivities", new { onclick = "return submitFormData()" })%></li>

这个查找的action,control是干什么呢? 好像不是提交到search的吧?
笑开 2012-06-19
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
"查询的条件也被清空",这是肯定的啊,因为页面发生跳转,只是重新跳转到原来的页面了。
至于数据嘛,我只看到你给model.userList 赋值了,其他的属性没赋值吧。所以应该跟原来的区别是石油下拉框有数据。
[/Quote]

我跟踪了断点了,数据都已经赋值了, 下拉框所选择的值也被清空了,恢复到了默认值。
是不是用的link 跳转的问题呢?
笑开 2012-06-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
代码编译过没
感觉后台代码不对啊
if(string.isnullorEmpty(passModel.userName) == false)
isnullorEmpty=>n大写吧
[/Quote]

后台的代码我只是简单描述下大概是这样的,可以编译通过。
暗夜雷丘 2012-06-19
  • 打赏
  • 举报
回复
"查询的条件也被清空",这是肯定的啊,因为页面发生跳转,只是重新跳转到原来的页面了。
至于数据嘛,我只看到你给model.userList 赋值了,其他的属性没赋值吧。所以应该跟原来的区别是石油下拉框有数据。
hhucxyb 2012-06-19
  • 打赏
  • 举报
回复
代码编译过没
感觉后台代码不对啊
if(string.isnullorEmpty(passModel.userName) == false)
isnullorEmpty=>n大写吧
笑开 2012-06-19
  • 打赏
  • 举报
回复

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.master" Inherits="System.Web.Mvc.ViewPage<ICPM_CRM.Models.InvestmentActivitiesModels>" %>

<%@ Import Namespace="ICPM_CRM.Models" %>
<%@ Import Namespace="ICPM_CRM.DAO" %>
<%@ Import Namespace="ICPM_CRM.Utility" %>
<asp:Content ID="Content1" ContentPlaceHolderID="HeadContent" runat="Server">
<title>招商日常活动记录</title>
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="Server">
<h2>
招商日常活动记录</h2>
<script language="javascript" type="text/javascript">
function submitFormData() {
document.forms[0].submit();
}
</script>
<% using (Html.BeginForm())
{ %>
<div class="main_btn">
<ul>
<li id="check">
<%=Html.ActionLink("查找(I)", "InvestmentActivities", "InvestmentActivities", new { onclick = "return submitFormData()" })%></li>
<li id="add"><a href="AddActivities">增加(A)</a></li>
<li id="del">删除(D)</li>
<li id="close">关闭(L)</li>
</ul>
</div>
<div class="txt_div txt_div_CustomerEnquiry_h">
<p>
<%= Html.LabelFor(m => m.ActivityTimeFrom)%>
<%=Html.CalendarFor(m => m.ActivityTimeFrom,"yyyy-MM-dd")%>
     
<%= Html.LabelFor(m => m.ActivityTimeTo) %>
<%=Html.CalendarFor(m => m.ActivityTimeTo,"yyyy-MM-dd")%>
</p>
</div>
<div class="txt_div">
<p>
<%= Html.LabelFor(m => m.CustomerId) %>
     
<%= Html.DropDownListFor(m => m.CustomerId, Model.CustomerList, "--Select--", new { @class = "cmb" })%>
</p>
<p>
<%= Html.LabelFor(m => m.UserInfo) %>   
<%= Html.DropDownListFor(m => m.UserInfo.UserId, Model.UserList, "--Select--", new { @class = "cmb" })%>
</p>
</div>
<p>
<%=Html.GridView<tblActivity>(Model.tblActivityList,
new string[] { "活动编号", "活动主题", "用户编号", "客户编号", "活动类型", "活动地址", "活动时间", "活动信息" },
new GridViewOption(),false,Model.DictionaryColumn,new List<string>(),"")%>
</p>

<% } %>
</asp:Content>



代码贴出来了
hhucxyb 2012-06-19
  • 打赏
  • 举报
回复
页面代码贴出来
  • 打赏
  • 举报
回复
页面返回了Model,那么就重新赋值。如下

<input type="text" class="valid {required:true} input_style_1 ignore" name="GSXOpptID" value="@Model.GSXOpptID"/>
笑开 2012-06-19
  • 打赏
  • 举报
回复
请指点下啊~

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧