我想要使用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做算法。
感谢。
答案 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");
我希望你能在你的最后做同样的事情。如果您想了解更多信息,请与我们联系。