【问题标题】:ASP.Net MVC Usage confusionASP.Net MVC 使用混乱
【发布时间】:2017-11-14 11:57:01
【问题描述】:

我的情况是,我想使用 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# 编写的代码进行转换。这将是我想象的模型中的一种方法。我必须使用用C#编写的代码,所以我不能在js中做算法。

谢谢。

【问题讨论】:

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


    【解决方案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");
    

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

    【讨论】:

    • 对不起,我可能应该提到这一点。我需要将代码发送到模型的原因是因为有一些代码是用 C# 编写的,我打算在用户输入中使用这些代码。我无法在 Javascript 中进行修改,我打算重用 C# 中给出的内容。
    • 我会把它添加到我的问题的底部
    • 我提到的代码也是在后端使用 C#。这并没有什么不同。
    猜你喜欢
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 2011-05-01
    相关资源
    最近更新 更多