ASP.NET MVC 搜索+保存搜索结果.2个按钮共用一个表单

想要实现的效果,1.搜索功能 2.搜索结果保存到text功能

前台代码

一个表单2个按钮,通过JS代码来修改form的action,来实现调用不同的后台代码

            <form name="form1"  action="~/Card/List" method="get" >
                <span class="label label-success">卡号:</span>
                <input class="form-inline" type="text" name="CardNum" placeholder="请输入要查询的卡号" value="@Request.QueryString["CardNum"]" style="width:260px" />
                <span class="label label-success">面值:</span>
                <input type="text" name="Price" placeholder="" value="@Request.QueryString["Price"]" style="width:100px" />
                <span class="label label-success">状态:</span>
                <select name="Status">
                    <option value="2" @(Request.QueryString["Status"] == "2" ? "selected=‘selected‘" : "")> 全部 </option>
                    <option value="-1" @(Request.QueryString["Status"] == "-1" ? "selected=‘selected‘" : "")> 冻结 </option>
                    <option value="0" @(Request.QueryString["Status"] == "0" ? "selected=‘selected‘" : "")> 已用 </option>
                    <option value="1" @(Request.QueryString["Status"] == "1" ? "selected=‘selected‘" : "")> 未用 </option>
                </select>
                <span class="label label-success">创建日期:</span> <input type="date" class="inline laydate-icon" name="CreateDateTime" value="@Request.QueryString["CreateDateTime"]" />
                <button type="submit" class="btn btn-success" onclick="mysearch()">查询</button>
                <button id="SaveText" class="btn btn-success" onclick="myexport()">导出查询结果</button>
            </form>

JS代码

        function mysearch() {
            document.form1.action = "/Card/List";
        }
        function myexport() {
            document.form1.action = "/Card/Export";
        }

后台代码

后台用到了mvcpager分页,用的htmlget方式

        [CheckLogin]
        [HttpGet]
        public ActionResult List(string cardnum, decimal? Price, int? Status, DateTime? CreateDateTime, int id = 1)
        {
            return list(cardnum, Price, Status, CreateDateTime, id);
        }
        [CheckLogin]
        [HttpGet]
        public ActionResult Export(string cardnum, decimal? Price, int? Status, DateTime? CreateDateTime, int id = 1)
        {
            CardService cardS = new CardService();
            var model = cardS.Search2(cardnum, Price, Status, CreateDateTime);
            var items= list(cardnum, Price, Status, CreateDateTime, id);
            string str = string.Empty;
            foreach (var item in model)
            {
                str = str + item.CardNum+"----"+item.Price+"----"+item.CreateDateTime+"----"+item.Status + "\r\n";
            }
            byte[] data = Encoding.UTF8.GetBytes(str);
            return File(data, "text/plain", "卡密.txt");
        }
        private ActionResult list(string cardnum, decimal? Price, int? Status, DateTime? CreateDateTime,int id = 1)
        {
            CardService cardS = new CardService();
            var model = cardS.Search2(cardnum, Price, Status, CreateDateTime);
            PagedList<CardDTO> InfoPager = model.ToPagedList(id, 10);
            InfoPager.TotalItemCount = model.Count();
            InfoPager.CurrentPageIndex = id;
            CardSearchDTO model2 = new CardSearchDTO();
            model2.Cards = InfoPager;
            if (Request.IsAjaxRequest())
                    return PartialView("_AjaxSearchGet", model2);
                return View("List",model2);

        }
时间: 2024-10-14 12:45:33

ASP.NET MVC 搜索+保存搜索结果.2个按钮共用一个表单的相关文章

ASP.NET MVC 网站开发总结(五)——Ajax异步提交表单之检查验证码

首先提出一个问题:在做网站开发的时候,用到了验证码来防止恶意提交表单,那么要如何实现当验证码错误时,只是刷新一下验证码,而其它填写的信息不改变? 先说一下为什么有这个需求:以提交注册信息页面为例,一般注册都需要用户填一个验证码信息(防止机器恶意注册),并且这个验证码会提交到后台去进行比对,若是错了则不会检查其他提交信息而直接返回浏览器端提示验证码错误.若是简单地用form表单直接将数据提交到指定的url,当验证码填写错误的信息返回浏览器端的时候,不可避免整个页面都会重新刷新一次,这是用户所不想要

《ASP.NET MVC 4 实战》学习笔记 2:第一个MVC用程序(下)

上一篇VS帮我们创建了简单的操作页面,实现了CRUD功能,但是具体是怎样实现的,本篇试着分析一下. 1.视图(以Create视图为例): 1 @* 说明:此段话左右两端括起来的部分表示注释 *@ 2 3 @* 下面的@model表示利用强类型的方法来将数据或对象传递到视图模板中 *@ 4 5 @* @前缀表示HTML与代码之间的转换 *@ 6 7 @model Guestbook.Models.GuestbookEntry 8 9 @{ 10 ViewBag.Title = "Create&qu

MVC中使用内建的HTML辅助方法产生表单元素提交表单与button按钮事件的陷阱

网站模板页有个登陆的退出按钮,当点击时跳转到登陆页面. <button onclick="logout()" >退出</button> $("#logOut").click(function () { location.href = "@Url.Action("Logout", "Account")"; }); 然后再某个页面楼主用了HTML辅助方法产生表单元素,代码如下所示: @H

《ASP.NET MVC 4 实战》学习笔记 1:第一个MVC用程序(上)

开发环境为VS 2013 Ultimate,首先新建一个名为Guestbook的MVC项目,具体过程就不表啦,因为我比较懒 哈哈! 一.默认模板分析(开发工具会自动创建一个可以运行的项目): 1.控制器:继承于Controller基类的类,其中的方法(称为动作即Action)对应于某个URL. 1 namespace Guestbook.Controllers 2 { 3 public class HomeController : Controller // 继承于Controller 4 {

ASP.NET MVC中如何在当前页面上弹出另外一个页面

注意:不是链接到另一个页面,而是弹出一个页面,当前的页面和弹出页面都存在于浏览器的同一个标签页中,效果如图: 弹出的窗体置于四大天王页面之上,但是无法继续操作底层的页面,代码如下: 1 function createDialog(src, width, height) { 2 var _doc_width = $(document).width(); 3 var _doc_height = $(document).height(); 4 var _html = "<div id='bg'

两个按钮共用一个界面并且点击该界面保存按钮调用不同事件

第一种情况:新增修改共用窗口 新增是创建model加载到弹出窗口的form中,sysid为空(sysid是在保存记录时生成的一串字符,由sys_guid()得到).编辑时将grid已选项加载到弹出窗口form,此时该记录是已存在所以sysid不为空,然后就以此判断编辑窗口的保存按钮点击时是调用新增还是修改. 第二种情况:批量制作主副卡 与新增和修改共用窗口不一样,创建卡时,grid选中的是卡信息而弹出的创建卡窗口中form的model并不是卡信息而是批量制卡的一些条件数据,所以不能和新增修改一概

[Asp.net MVC]Asp.net MVC5系列——添加数据

目录 概述 显示添加数据时所用表单 处理HTTP-POST 总结 系列文章 [Asp.net MVC]Asp.net MVC5系列——第一个项目 [Asp.net MVC]Asp.net MVC5系列——添加视图 [Asp.net MVC]Asp.net MVC5系列——添加模型 [Asp.net MVC]Asp.net MVC5系列——从控制器访问模型中的数据 概述 上篇文章介绍了如何通过控制器访问模型中的数据,在本节中我们将要在数据库中追加并保存一些数据.我们将要创建一个表单以及一些表单输入

ASP.NET MVC中商品模块小样

在前面的几篇文章中,已经在控制台和界面实现了属性值的笛卡尔乘积,这是商品模块中的一个难点.本篇就来实现在ASP.NET MVC4下商品模块的一个小样.与本篇相关的文章包括: 1.ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积01, 在控制台实现  2.ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积02, 在界面实现   3.再议ASP.NET MVC中CheckBoxList的验证   4.ASP.NET MVC在服务端把异步上传的图片裁剪成不同尺寸分别保存,并设置上

[转] ASP.NET MVC 模型绑定的功能和问题

摘要:本文将与你深入探究 ASP.NET MVC 模型绑定子系统的核心部分,展示模型绑定框架的每一层并提供扩展模型绑定逻辑以满足应用程序需求的各种方法. 同时,你还会看到一些经常被忽视的模型绑定技术,并了解如何避免一些最常见的模型绑定错误. ASP.NET MVC 模型绑定通过引入自动填充控制器操作参数的抽象层.处理通常与使用 ASP.NET 请求数据有关的普通属性映射和类型转换代码来简化控制器操作. 虽然模型绑定看起来很简单,但实际上是一个相对较复杂的框架,由许多共同创建和填充控制器操作所需对