ASP.Net MVC 用法混淆



我想使用 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 中执行算法。

谢谢。

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

 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.");
        }
    });
};

在此代码中,im所做的是,我正在隐藏或取消隐藏一个,具体取决于我在控制器中创建的方法返回的结果,即PhoneTextChanged。

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

 return Json("no hide");

我希望你想在最后做同样的事情。如果您想了解更多信息,请告诉我。

最新更新