2016-12-06 3 views
0

これはずっと簡単だと思いました。私は自分のデータテーブル内のセルからデータを抽出し、コントローラ内のアクションに変数を渡すために、隠しフィールドを持つフォームを介してデータを送信する必要があります。データテーブルのセルからJQueryを使用してコントローラにデータを解析し、ヌル値を受け取る

フォームを生成することを除いて、これまで私のコードでこれと似たようなことをしています。

私はさまざまな方法を試みましたが、私のアクションでコレクションにアクセスするときに値がnullであるかどうかは関係ありません。しかし、私がJQuery中にポップアップを使ってテストすると、値はnullではありません。

私は、この問題が構文解析またはコントローラの読み込みのいずれかであると考えています。しかし私は他のコントローラのどこかで同じことをやっているので、それを解析すると信じています。

マイビュー機能:

$('#myTable').on('click', 'td', function() { 
      var serial = table.cell(this).data(); 


      var form = $('<form action="@Url.Action("status")" id="hiddenform"><input type="hidden" id="serial" name="serial" value=""></form>').appendTo('body'); 
      $('#serial').val(serial); 
      form.submit(); 


     }); 

と私はパースしています私のコントローラ:それはきれいに見えるので、私はこの問題を解決しようとする試みに多くのことを自分のコードを虐殺している正直に言うと

//Accept GET and POST 
[AcceptVerbs(HttpVerbs.Get | HttpVerbs.Post)] 
public ActionResult Status(System.Web.Mvc.FormCollection collection) 
{ 
    string serial = collection["serial"]; 

    if (serial == null || serial == "") 
     System.Windows.Forms.MessageBox.Show("Error: Serial is NULL"); 

    return View(serial); 
} 

ひどい。

ご協力いただければ幸いです。

コントローラに毎回エラー:シリアルはNULLポップアップが表示されます。しかし、私はJQueryをテストする場合、値がnullではない正しい値を返します。

答えて

1

メソッドのシグネチャを次のように変更しようとしましたか?

public ActionResult Status(string serial) 

ここで、serialは、HTMLフォームから渡すパラメータ名になります。

パラメータ名は、HTMLでblahある場合は、以下にあなたのメソッドのシグネチャを変更する必要があります

public ActionResult Status(string blah) 
+0

ありがとうございました!正直言って私はこれに似たものを試しましたが、当時の私のコードでは、それが動作しなくなったに違いありませんでした。 –

+0

私はここで(同じくらい)同じ質問をしています:http://stackoverflow.com/questions/40987658/generating-form-with-hidden-input-and-submitting-to-an-action あなたがそこに答えたら私はあなたにも答えを与えます! –

関連する問題