ASP.Net MVC使用混乱

时间:2017-11-14 11:57:02

标签: c# jquery asp.net asp.net-mvc razor

我想要使用JQuery从页面获取值,使用该值更新模型,调用方法来更新模型中的其他值。然后调用控制器返回一个包含新模型的视图。

我是新手,所以我想这是错误的做法。

这是我到目前为止的观点:

@using Cubic.OSS.SNMPMessageDuggerWebApplication.Models
@model SnmpModel
@{
   ViewBag.Title = "SNMP Message Debugger";
}

@section scripts
{

<script src="~/Scripts/jquery-1.7.1.js"></script>

<script type="text/javascript">

    $(document).ready(function() {


        $("#input-button").click(function () {
            // This is where I want the process to start.
        });


    });

</script>

}


<h2>@ViewBag.Title.</h2>
<div class="container-bar">
    <div id="input-bar">
        <p class="input-label">Enter SNMP Message: </p>
        <textarea rows="10" cols="300" id="input-area"></textarea>
        <br />
        <button id="input-button">Convert</button>
    </div>
    <div id="output-bar">
        <p class="output-label">Result: </p>
        <textarea rows="10" cols="300" id="output-area"></textarea>
    </div>
</div>

我的模型看起来像这样:

public class SnmpModel
{

    public string SnmpMessageInput { get; set; }
    public string SnmpMessageOutout { get; set; }


   // I Imagine a method would be added here to transform the input

}

到目前为止这是控制器:

public class SNMPController : Controller
{
    // GET: SNMP
    public ActionResult Index()
    {
        return View();
    }


}

我不知道该怎么做:使用返回的JQuery更新模型,然后使用控制器使用新模型刷新页面。

输入将从输入文本区域获取,然后使用之前用C#编写的代码进行转换。这将是模型I图像中的方法。我必须使用用C#编写的代码,所以我不能用js做算法。

感谢。

1 个答案:

答案 0 :(得分:1)

不要重新加载页面/视图。只需像这样更新所需的值:

 function onChangeNumber() {
    var changedText = $("#PhoneNo").val();
    var CountryVal = $("#CountryCode").val();
    var CountryName = $("#appSelected option:selected").text();
    var ProductVal = $('#appSelected option:selected').val();
    url = '/controller/PhoneTextChanged';
    var data_to_send = {
        changed: changedText, ProductValue: CountryName
    };
    alert(changedText + CountryName);
    $.ajax({
        url: url,
        type: "POST",
        async: true,
        dataType: "json",
        data: data_to_send,
        success: function (data, textStatus, jqXHR) {
            if (data == "Invalid Number format") {
                alert("Invalid Number format");
            }

            else if (data == "hide") {
                $("#hiddenDiv").hide();
            }
            else {
                $("#hiddenDiv").show();
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
            alert("Server error! try back later.");

        }
    });
};

在这段代码中,我正在隐藏或取消隐藏a取决于我在控制器中创建的方法返回的结果,即PhoneTextChanged。

我将参数传递给此方法PhoneTextChanged,然后我评估我的结果,然后从控制器返回结果,如下所示:

 return Json("no hide");

我希望你能在你的最后做同样的事情。如果您想了解更多信息,请与我们联系。