从javascript函数传递提示框值-回发到c#
我会尽我所能清楚地表达我想做的事情 让我先说一句,我对C#和ASP.NET非常陌生,对javascript的使用经验很少从javascript函数传递提示框值-回发到c#,c#,javascript,asp.net,C#,Javascript,Asp.net,我会尽我所能清楚地表达我想做的事情 让我先说一句,我对C#和ASP.NET非常陌生,对javascript的使用经验很少 [WebMethod(enableSession: true)] public static void SendForm(string name) { } 我有一个调用提示框的javascript函数。总体情况是-如果输入-它将保存到数据库中的一列 在c#中将值从提示框传递到回发时,我画了一个空白 这就是我在C#中的内容: 我试图找出如何调用j
[WebMethod(enableSession: true)]
public static void SendForm(string name)
{
}
我有一个调用提示框的javascript函数。总体情况是-如果输入-它将保存到数据库中的一列
在c#中将值从提示框传递到回发时,我画了一个空白
这就是我在C#中的内容:
我试图找出如何调用javascript函数的输入
在过去的几个小时里,我一直在网上和书里寻找。我被淹没了
编辑
我做了一点Tweek来适应我想要做的
<asp:HiddenField ID="txtAction" runat="server" Value="" />
document.forms(0).txtAction.Value = "saveevent";
document.forms(0).submit();
好吧,这里有一个可能的方法(未经测试,但应该给你基本的想法)。您可以在表单上放置一个隐藏字段来保存提示的值:
<input type="hidden" id="hiddenNameField" runat="server" value="">
然后,在代码隐藏中,您只需访问
hiddenNameField.Value
如果您试图使用java脚本在后端调用该方法,您可以尝试使用web方法
例如,您有一个调用SendForm方法的函数
function SendForm() {
var name = $("#label").text();
PageMethods.SendForm(name,
OnSucceeded, OnFailed);
}
function OnSucceeded() {
}
function OnFailed(error) {
}
您拥有将从javascript调用的方法
[WebMethod(enableSession: true)]
public static void SendForm(string name)
{
}
__doPostBack(“第页”);
复制自我认为这里需要AJAX请求。我建议使用jQuery,因为狗是否为您工作。。。否则,您将不得不为AJAX处理实现许多已经编写的通用代码 如下所示:
function PromptSomewhere(/* some args if needed*/)
{
var nName = prompt("New Name", " ");
// Do process your prompt here... as your code in JS above. Not placed here to be more readable.
// nName is used below in the AJAX request as a data field to be passed.
$.ajax({
type: "post", // may be get, put, delete also
url: 'place-the-url-to-the-page',
data {
name: nName
// You may put also other data
},
dataType: "json",
error: PromptFailed,
success: OnPromptComplete
});
}
function PromptFailed(xhr, txtStatus, thrownErr) // The arguments may be skipped, if you don't need them
{
// Request error handling and reporting here (404, 500, etc.), for example:
alert('Some error text...'); // or
alery(txtStatus); // etc.
}
function OnPromptComplete(res)
{
if(!res)
return;
if(res.code < 0)
{
// display some validation errors
return false;
}
// display success dialog, message, or whatever you want
$("div.status").html(result.message);
}
注意:如果您使用ASP.NET MVC 2或更高版本,我认为您将能够使用JsonResult操作和
Request.IsAjaxRequest
(我认为是名称),以及ASP.NET的许多其他功能和改进-ASP.NET MVC是基于MVC模式(体系结构)创建web应用程序的新方法并将在一段时间内最终取代ASP.NET页面。这是一个非常好的资源,包含您问题的答案:
基本上,从其他JS函数调用PostbackWithParameter()
函数:
<script type="text/javascript">
function PostbackWithParameter(parameter)
{
__doPostBack(null, parameter)
}
</script>
[WebMethod(enableSession: true)]
public static void SendForm(string name)
{
}
<script language='Javascript'>
__doPostBack('__Page', '');
</script>
function PromptSomewhere(/* some args if needed*/)
{
var nName = prompt("New Name", " ");
// Do process your prompt here... as your code in JS above. Not placed here to be more readable.
// nName is used below in the AJAX request as a data field to be passed.
$.ajax({
type: "post", // may be get, put, delete also
url: 'place-the-url-to-the-page',
data {
name: nName
// You may put also other data
},
dataType: "json",
error: PromptFailed,
success: OnPromptComplete
});
}
function PromptFailed(xhr, txtStatus, thrownErr) // The arguments may be skipped, if you don't need them
{
// Request error handling and reporting here (404, 500, etc.), for example:
alert('Some error text...'); // or
alery(txtStatus); // etc.
}
function OnPromptComplete(res)
{
if(!res)
return;
if(res.code < 0)
{
// display some validation errors
return false;
}
// display success dialog, message, or whatever you want
$("div.status").html(result.message);
}
using System.Web.Script.Serialization;
protected void Page_Load(object sender, EventArgs e)
{
if(IsPostBack && ScriptManager.GetCurrent(this).IsInAsyncPostBack)
{
string nName = Request.Form["name"];
// do validation and storage of accepted value
// prepare your result object with values
result.code = some code for status on the other side
result.message = 'Some descriptive message to be shown on the page';
// return json result
JavaScriptSerializer serializer = new JavaScriptSerializer();
Response.Write(serializer.Serialize(result));
}
}
<script type="text/javascript">
function PostbackWithParameter(parameter)
{
__doPostBack(null, parameter)
}
</script>
public void Page_Load(object sender, EventArgs e)
{
string parameter = Request["__EVENTARGUMENT"];
}