public ActionResult UrlJquery(int id, int? ObjectID = 1) { unite un = new unite(); string txt = Request["txtNamesp"]; un.menu = CustomerInfo.GetMeanList(txt).Tables[0]; un.dt = CustomerInfo.GetDtList(id).Tables[0]; int pageSize = 20; int pageIndex = ObjectID ?? 1; un.pl = new PagedList<DataRow>(un.dt.Select(), pageIndex, pageSize); return View("Index", un); }
点击超级链接我把把文本框的值 sp带回对应的控制器方法去
视图代码:
@model WC_DBConsole.Controllers.WC_IndexController.unite @using Webdiyer.WebControls.Mvc @{ ViewBag.Title = "Index"; } <link href="@Url.Content("~/Content/WC_Index.css")" rel="stylesheet" type="text/css" /> @using (Html.BeginForm("Index", "WC_Index")) { <div class="divLayout"> <div id="MenuLeft" class="MenuLeft"> <div id="txtQuery" class="txtQuery"> @Html.TextBox("txtName")  <input name="Submit" type="submit" value="查询" /> </div> <ul> @foreach (System.Data.DataRow item in Model.menu.Rows) { <li><a id="MeauID" href='@Url.Action("UrlJquery", "WC_Index", new { id = @item["CustomerID"] })' >@item["Customer_Name"]</a></li> } </ul> </div> </div> } <script type="text/ecmascript"> $(function () { $("#MenuLeft a").click(function () { location.href = "/WC_Index/UrlJquery?txtNamesp=" + $("#txtName").val() }); }); </script>
控制器代码:
点击超级链接的控制器方法:
public ActionResult UrlJquery(int id, int? ObjectID = 1) { unite un = new unite(); string txt = Request["txtNamesp"]; un.menu = CustomerInfo.GetMeanList(txt).Tables[0]; un.dt = CustomerInfo.GetDtList(id).Tables[0]; int pageSize = 20; int pageIndex = ObjectID ?? 1; un.pl = new PagedList<DataRow>(un.dt.Select(), pageIndex, pageSize); return View("Index", un); }
string txt = Request["txtNamesp"]?这个我获取不到啊 在控制器 UrlJquery里面
在线等。
谢谢!
实际上我开始是输入了 jet 点击查询后 变空了 怎么让他还在呢?
href='@Url.Action("UrlJquery", "WC_Index", new { id = @item["CustomerID"] })'
这个 a 有个 默认的行为 也就是点击了会跳转你href定义的url
要么在
click 中阻止默认的行为event.preventDefault();
要么就是你在href=“javascrip:void();”
尝试一下啊吧。
恩 好的 谢了
确认一下是否的确路由到了UrlJquery这个Action
肯定找到 了啊 我页面都运行正常 数据什么都有 我还调式了
@s_p: /WC_Index/UrlJquery?txtNamesp=,这个地址没有走这个Action
@dudu: WC_Index就是控制器的名字 UrlJquery是控制器对应的方法
@s_p: 没有为参数id传值,会报错的
Request["txtNamesp"];
@Html.TextBox("txtName") 名称不同- - !
location.href = "/WC_Index/UrlJquery?txtNamesp=" + $("#txtName").val()我是用这个带过去的
@s_p: 要不你试试
Request.QueryString
@wenthink: 原因是恩 我点击查询后 文本框的值本空了 但是我如果让文本框的值 刷新后还存在呢?
你相当于 再次 刷新 这个页面,因此 为空吧。
恩是的 我点击查询后 文本框的值本空了 但是我如果让文本框的值 刷新后还存在呢?
我告诉你吧,正确的写法是:location.href = "/WC_Index/UrlJquery/?txtNamesp=" + $("#txtName").val()
<script type="text/ecmascript"> $(function () { $("#MenuLeft a").click(function () { location.href = "/WC_Index/UrlJquery?txtNamesp=" + $("#txtName").val() }); }); </script>
ni 看到区别了?
@s_p: 注意:我写的是:UrlJquery/?txtNamesp,你写的是:UrlJquery?txtNamesp
@s_p: 试过了吗?我说对没有
用FormCollection
ref: http://msdn.microsoft.com/en-us/library/system.web.mvc.formcollection(v=vs.98).aspx
google下example
"让文本框的值 刷新后还存在": 用runat=server输入框即可
简单点,把a的href属性改为"#"试一下
恩 好的 谢了