2017-11-14 8 views
1

JQueryを使用してページから値を取得し、その値でモデルを更新し、モデル内の別の値を更新するメソッドを呼び出す場合があります。次に、コントローラを呼び出して、新しいモデルを含むビューを返します。ASP.Net MVCの使用方法の混乱

私はこれが初めてだから、これは間違ったアプローチだと思います。

これは私がこれまで持っているビューです:私のモデルは、このようになります

@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

ページ/ビューのリロードを行わないでください。

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

     } 
    }); 
}; 

イム、私は隠れたり、私は私のコントローラすなわちPhoneTextChangedで作成したメソッドから返された結果に応じて、非表示解除していますされてやって何このコードで:ちょうどこのような目的の値を更新します。

私はこの方法PhoneTextChangedにパラメータを渡すと、私は自分の結果を評価し、このようなコントローラから結果を返す:

return Json("no hide"); 

私はあなたが最後に同じものをやりたい願っています。あなたがもっと知りたいのであれば教えてください。

+0

申し訳ありません。コードをモデルに送る必要がある理由は、C#で書かれたコードがユーザーの入力に使用されるためです。私はJavascriptの変更を行うことはできません、私はC#で与えられたものを再利用するつもりです。 – Kieran

+0

私の質問の末尾にそれを追加します – Kieran

+0

私が言及したコードはバックエンドでもC#を使用しています。違いはありません。 –

関連する問題