通过 jquery 从部分页面向控制器发送用户输入文本框值

Sending user input text box value via jquery from a partial page to Controller

我的部分视图有一个 table 多行,每行都有一个按钮(每行都是唯一的)。按下按钮时,将打开一个 jquery 模式对话框,用户可以在文本框中输入一个值。该值是我无法进入 jquery 变量以发送到我的 MVC 控制器的值。所有 jquery 代码都是从局部视图执行的。

我已经尝试了在网络上看到的每个示例。我已经有可用的代码,只是不是通过局部视图。

CSHTML:

<form>
  <div id="currentandnewtipamount">
    <div>@Html.Label("Current Tip Amount: $")
      <label for="CurrentTipAmount" ></label>
    </div>
    <br />
    @Html.Label("Tip Edit Amount")
    <input type="text" name="NewTipEditAmount" id="NewTipEditAmount" >
  </div>
</form>

JQuery:

var TipEditDialog, RRN;
    NewTipEditAmount = $("#NewTipEditAmount");

function SubmitTipEditAmount() {
        NewTipEditAmount = $("#NewTipEditAmount").val().toString();
        {
            $.ajax({
                type: "POST",
                url: "/MyTransactions/UpdateTipAMT",
                data: { 'NewTipEditAmount': NewTipEditAmount },
                success: function (bool) {
                    //alert(bool);
                }
            });
        }
    }

下面是网站另一部分未使用部分视图的工作示例。

JQuery:

var Logindialog, form;
    loginusername = $("#loginusername"),
    loginpassword = $("#loginpassword"),
    loginnewpassword = $("loginnewpassword"),
    loginconfirmnewpassword = $("loginconfirmnewpassword"),
    allFields = $([]).add(loginusername).add(loginpassword);


    function LoginUser() {
        loginusername = $("#loginusername").val().toString();
        loginpassword = $("#loginpassword").val().toString();
        {
            $.ajax({
                type: "POST",
                url: "/User/Login",
                data: { 'loginusername': loginusername, 'loginpassword': loginpassword },
                success: function (response) {
                    if (response === true) {
                        $("#Logindialog-form").dialog("close");
                        RunPasswordCheck(loginusername, loginpassword);
                    }
                    else {
                        alert("Something is not correct, try again please");
                        Logindialog.dialog("close");
                    }
                }
            });
        }
    }

CSHTML:

<div id="Logindialog-form" title="Log In" class="divloginformcontent">
<form class="loginformcontent">
    <div id="usernameAndpassword" class="Usernamepassword">
        <label for="username" class="loginfieldtext">Username</label>
        <input type="text" name="loginusername" id="loginusername" class="loginfields" />
        <br /><br />
        <label for="password" class="loginfieldtext">Password</label>
        <input type="password" name="loginpassword" id="loginpassword" class="loginfields" />
        <br /><br />
    </div>

    <input type="submit" tabindex="-1" style="position: absolute; top: -1000px" id="LoginSubmit" />  @*tab index and style allows for the enter button to be used without messing up anything*@
</form>

**

Can you try using the Jquery in the page where Partial view is calling instead of Inside Partial View.

**

下面是最终适用于我的情况的代码。我似乎需要为每个元素设置一个 'id' 并在 jquery.

的整个嵌套过程中引用它们

CSHTML:

<div id="EditTip-form" title="Edit Tip Amount" class="divloginformcontent"> 
 <form class="loginformcontent" id="form">
     <div id="currentandnewtipamount">
         @Html.Label("Current Tip Amount: $") <label for="CurrentTipAmount" ></label>
         <br />
         @Html.Label("Tip Edit Amount")

         <input type="text" name="NewTipEditAmount" id="NewTipEditAmount" class="forminput">
     </div>
 </form>
</div>

JQUERY:

 function SubmitTipEditAmount() {
        NewTipEditAmount = $('#EditTip-form #form #currentandnewtipamount #NewTipEditAmount').val();
        {
            $.ajax({
                type: "POST",
                url: "/MyTransactions/UpdateTipAMT",
                data: { 'RRN': RRN, 'NewTipEditAmount': NewTipEditAmount },
                success: function (bool) {
                    //alert(bool);
                }
            });
            TipEditDialog.dialog("close");
        }
    }