1

私は MVC(Asp.net) と JavaScript が初めてです。この初歩的な質問で申し訳ありません。

<body>
    <div>
    <%--<% Html.BeginForm(); %>--%>
    <table>
    <tr>
        <td><%:Html.LabelFor(t=> t.CustomerID) %></td>
        <td><%:Html.TextBoxFor(t => t.CustomerID, new { ID = "txtCustomerID" })%></td>
    </tr>
    <tr>
        <td><%:Html.LabelFor(t=> t.CustomerName) %></td>
        <td><%:Html.TextBoxFor(t => t.CustomerName, new { ID = "txtCustomerName" })%></td>
    </tr>
    <tr>
        <td>
            <input type="submit" value="Submit" onclick="CheckName()" />
        </td>
    </tr>
</table>
     <%--<% Html.EndForm(); %>--%>
    </div>
</body>

t.CustomerNameJavaScript を使用して値を取得する必要があります。以下のように試してみましたが、エラーが発生します。

<head runat="server">
    <script type="text/javascript">
        function CheckName() {
            var value = document.getElementById('<%=t.CustomerName%>').value;
            alert(value);
        }

 function SubmitData() {
        var obj = {};
        obj.CustomerID = $("#txtCustomerID").val();
        obj.CustomerName = $("#txtCustomerName").val();

        $.ajax({
            url: "CreateNewRetailCustomer?jsonObject=" + JSON.stringify(obj),
            type: 'POST',
            contentType: 'application/json; charset=utf-8',
            dataType: 'json',
            success: function (result) {
                if (result.status == "successful") {
                    document.location.href = '../';
                }
            }
        });
    }
    </script>
    <title>Create Wholesale Customer</title>
</head>

私は以下のようにコントローラーのコーディングを書きました:

public ActionResult CreateRetailCustomer()
        {

            return View();
        }

         [HttpPost]
        public ActionResult CreateRetailCustomer(RetailCustomer retCust)
        {            
            new CustomerService.CustomerServiceClient().SaveRetailCustomer(retCust);
            return RedirectToAction("Index");
        }

         [HttpPost]
         public JsonResult CreateRetailCustomer(string jsonObject)
         {
             var retailCustomer = new System.Web.Script.Serialization.JavaScriptSerializer().Deserialize<Models.RetailCustomer>(jsonObject);
             new CustomerService.CustomerServiceClient().SaveRetailCustomer(retailCustomer);
             return Json(new { status = "successful" }, JsonRequestBehavior.AllowGet);             
         }


        [HttpGet]
        public JsonResult GetCustomerList()
        {
            var custlist = new CustomerService.CustomerServiceClient().GetCustomer().Select(m => new { CustomerId = m.CustomerId, CustomerName = m.CustomerName});
            return Json(custlist, JsonRequestBehavior.AllowGet);
        }

エラー:

この要求を処理するために必要なリソースのコンパイル中にエラーが発生しました。次の特定のエラーの詳細を確認し、ソース コードを適切に変更してください。

検索したところ、同様の質問asp.net mvc get value from Html.textbox() here が見つかりました。しかし、価値を得る方法については議論されていないHtml.TextBoxForので、どうすればこれを行うことができますか?

4

2 に答える 2

4

ID を取得するクリーンな方法は、 を使用することIdFor()です。これにより、階層 ID を解決でき、プロパティの文字列名をコードにハードコーディングする必要がなくなります。

function CheckName() {
    var value = document.getElementById('<%:Html.IdFor(t => t.CustomerName) %>').value;
    alert(value);
}
于 2013-04-27T20:05:04.290 に答える