问题描述
以前是用asp的,现在自己看书学asp.net中有个疑惑请教大家aspx页面有个textbox,现在想把这个textbox的值传到ashx里去,请问怎么弄?我想到的方法是在ashx里request.Form但被人鄙视,说这个方法是十几年前的了于是我去图书馆找了几本书看,但里面都还是用request的网上搜索到的基本也是request所以我很困惑请问大家现在到底应该用什么方法来完成这个简单的传值问题?
解决方案
解决方案二:
context.Request[]
解决方案三:
表单数据一般都用form传吧。asp.net的框架封装的标签可以,用html表单也行[img=http://forum.csdn.net/PointForum/ui/scripts/csdn/Plugin/001/face/32.gif][/img
解决方案四:
用textbox.value就可以
解决方案五:
sj.load("Handler.ashx",{取个名字:"放个值"},function(responseText,textStatus,XMLHttpRequest){location="index.aspx";});context.Request.Params["取的那个名字"];
解决方案六:
引用1楼u010349035的回复:
context.Request[]
请问还是用request来处理吗?因为我以前用request的时候被人鄙视,所以现在完全不敢用了他是这样说的:==============================在asp.net中谁让你用Request.Form["XXX"]来读取asp.net服务器控件的数据了?你从谁那里学来的Request.Form["XXX"]这种东西?在服务器端触发的事件处理程序中访问服务器控件,人家aspnet处理好了,值自动就赋值给控件了,你直接读取控件的属性。谁让你读Request.Form["XXX"]???其它页面,在asp.net中需要回发到当前页面,然后当前页面处理了各种必要的数据之后(因为只能在当前页面自动化处理控件值),使用Response.Redirect(....)重定向到其它页面。你所谓的“提交到其它页面”,是15年前的asp的做法。那个时候的程序是在各种页面之间跳来跳去地。它跟asp.net根本不同。如果你不是从15年前的asp学的,那么就是看的是别的什么web编程平台里边比较低级的开发教程。如果你要照着它去开发,那么压根就不应该学习asp.net。因为asp.net的核心就是页面的控件的自动维系状态改变的机制,而不是跳转到别的页面去处理。======================
解决方案七:
在asp.net中谁让你用Request.Form["XXX"]来读取asp.net服务器控件的数据了?你从谁那里学来楼主说是用的服务器控件么?
解决方案八:
把textbox的值传到ashx里去,就是用的request啊,如果是提交到本页面,直接textbox.value就可以了
解决方案:
引用6楼u011710947的回复:
在asp.net中谁让你用Request.Form["XXX"]来读取asp.net服务器控件的数据了?你从谁那里学来楼主说是用的服务器控件么?
嗯,我是用的服务器控件
解决方案:
你如果是用的服务器控件,asp:textbox比如它的name是textbox1那么你在后台直接获取textbox1.Text就好了
解决方案:
引用9楼Z65443344的回复:
你如果是用的服务器控件,asp:textbox比如它的name是textbox1那么你在后台直接获取textbox1.Text就好了
意思是我在ashx中直接取aspx页面中textbox1.Text吗?请问应该怎么写呢?谢谢
解决方案:
如果你要在ashx里取值,只能request,问题是你为什么非要在ashx里取值,aspx.cs里处理不了?
解决方案:
如果你后台代码不用.net编程,前台页面也完全没必要用.net做了做个html或者php什么的不好吗既然已经用了.net,前后台都用.net自己的方法不好吗
解决方案:
引用12楼Z65443344的回复:
如果你后台代码不用.net编程,前台页面也完全没必要用.net做了做个html或者php什么的不好吗既然已经用了.net,前后台都用.net自己的方法不好吗
作这个目的是为了用ajax实现无刷新提交使用.net是因为服务器只支持.net。。。
解决方案:
是谁告诉你ajax只能提交到ashx页面了
解决方案:
引用5楼jewely的回复:
他是这样说的:==============================在asp.net中谁让你用Request.Form["XXX"]来读取asp.net服务器控件的数据了?你从谁那里学来的Request.Form["XXX"]这种东西?在服务器端触发的事件处理程序中访问服务器控件,人家aspnet处理好了,值自动就赋值给控件了,你直接读取控件的属性。谁让你读Request.Form["XXX"]???其它页面,在asp.net中需要回发到当前页面,然后当前页面处理了各种必要的数据之后(因为只能在当前页面自动化处理控件值),使用Response.Redirect(....)重定向到其它页面。你所谓的“提交到其它页面”,是15年前的asp的做法。那个时候的程序是在各种页面之间跳来跳去地。它跟asp.net根本不同。如果你不是从15年前的asp学的,那么就是看的是别的什么web编程平台里边比较低级的开发教程。如果你要照着它去开发,那么压根就不应该学习asp.net。因为asp.net的核心就是页面的控件的自动维系状态改变的机制,而不是跳转到别的页面去处理。======================
这说的是aspx回发到本页面,而且是使用了许多高级的asp.net服务器控件并且要保持页面状态的编程方式。你找几本asp.net编程书籍看看,例如那些使用到了DropdownList、MutiView、GridView、ListView控件的编程书。不要用asp编程书来当作asp.net编程书。你告诉我,如果使用了大量的asp.net服务器控件,如何用“发给ashx”的方式来进行类似winform的那种自动维护控件状态编程呢?
解决方案:
引用13楼jewely的回复:
Quote: 引用12楼Z65443344的回复:
如果你后台代码不用.net编程,前台页面也完全没必要用.net做了做个html或者php什么的不好吗既然已经用了.net,前后台都用.net自己的方法不好吗作这个目的是为了用ajax实现无刷新提交使用.net是因为服务器只支持.net。。。
你硬是不用context.Request[],可以用url传参,改成get请求。
解决方案:
引用13楼jewely的回复:
作这个目的是为了用ajax实现无刷新提交使用.net是因为服务器只支持.net。。。
晕死。你找的那个解释,人家当然就不是针对ajax来说的。你应该先把你自己的技术定位搞清楚,再引用别人的回帖。如果你引用宝马公司的回答来套到神舟公司的产品上,肯定不行。
解决方案:
引用楼主jewely的回复:
以前是用asp的,现在自己看书学asp.net中有个疑惑请教大家aspx页面有个textbox,现在想把这个textbox的值传到ashx里去,请问怎么弄?我想到的方法是在ashx里request.Form但被人鄙视,说这个方法是十几年前的了
我不知道是你懒得学习asp.net,还是你故意不把实际的需求写明白。比如说你看到的人家的帖子是asp.net应用程序的,例如有至少7、8种GridView控件,里边在模板上有TextBox之类的控件,GridView自动有“增删改”功能,可是你无视人家的asp.net应用程序跟你的程序不是同一个“档次”。纠结起Reqeust.Form语句来了。
解决方案:
引用10楼jewely的回复:
Quote: 引用9楼Z65443344的回复:
你如果是用的服务器控件,asp:textbox比如它的name是textbox1那么你在后台直接获取textbox1.Text就好了意思是我在ashx中直接取aspx页面中textbox1.Text吗?请问应该怎么写呢?谢谢
建议你先找一本2005~2009年代入门书来学习asp.net,把书中的所有应用程序范例都做一遍。而不要急于挑起对asp.netwebform编程模式的怀疑。实际上,现在这个时代,asp.netwebform确实是相当地“过时”了,我们会推荐另外一套webUI开发模式。可是你不会因为抛出什么ajax的名词儿来,就能更好地做好web前端开发。因为你不能耐心地看懂一本入门书去去学习“asp.netwebform学习”,也同样不能正确对待新的webUI开发模式学习问题。
解决方案:
请问大家现在到底应该用什么方法来完成这个简单的传值问题?
解决方案:
request.....你又不是提交到本身的aspx页面,需要提交到ashx页面.....本身的aspx可以texboxid.text()这样MVC可以不要request,webform貌似还是得request的
解决方案:
我是新手,都没用服务器控件,用的input,然后用xmlhttprequest往asp.net处理程序传,在url里带上参数就行了。取数值用的document.getElementById("XXX").value
解决方案:
十分想实现的话,尝试此方法,在ashx去获取xxx.aspx.cs的返回式函数:
解决方案:
Insus.NET提供的方法有很多非议性,但如果能解决问题,也可以暂且使用。