从javascript函数传递提示框值-回发到c#

从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

我会尽我所能清楚地表达我想做的事情

让我先说一句,我对C#和ASP.NET非常陌生,对javascript的使用经验很少

  [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"];
}