0

ビューにモデルを渡します。そのフィールドは非表示になっています。私のTDSはここにあります(このビューで)

ボタン (submit-btn2) をクリックしたとき、最初に Java スクリプト コードが実行されます。そして、私の塗りつぶされたモデルは投稿されますか?

私のパーシャルビュー:

    @Html.HiddenFor(m => m.username)
    @Html.HiddenFor(m => m.Tell)
    @Html.HiddenFor(m => m.Name)
    @Html.HiddenFor(m => m.Mobil)
    @Html.HiddenFor(m => m.Lname)

      <button class="btn btn-medium btn-general input-block-level" id="submit-btn2"   type="submit">save</button>

          //all tds are here in this page(this view)

        // $(document).ready(function () {
        //$('#submit-btn2').click(function () {
        //$("#username").val($(".tdBuyername").val());
        //$("#Tell ").val($(".tdPhone").val());
        //$("#Name ").val($(".tdRecievername").val());
        //$("#Mobil ").val($(".tdMobile").val());
        //$("#Lname ").val($(".tdLname").val());
          //});
        // });



      <script type="text/javascript">

$("#submit-btn2").click(function () { saveMyModel();});

function SaveMyModel()
{
    var e = document.getElementById("id_purchase");
    var str = e.options[e.selectedIndex].value;

    var e2 = document.getElementById("id_spend");
    var str2 = e.options[e.selectedIndex].value;

    $.ajax({
        url: '@Url.Action("Save", "Home")',
        type: 'POST',
        contentType: 'application/json',
        data: JSON.stringify({
            jsonMyModel: {

                username: $(".tdBuyername").val(),
                Tell: $(".tdPhone").val(),
                Name: $(".tdRecievername").val(),
                Mobil: $(".tdMobile").val(),
                Lname: $(".tdLname").val(),

                id_purchase: $("# id_purchase ").val(str),
                id_spend: $("# id_spend ").val(str2),
            }

            })
    });
}

マイコントローラー:

    [HttpGet]
    public ActionResult Customer()
    {
        var obj = new Project.Models.ModelClasses.ViewModelX();
        return PartialView(obj);
    }

    [HttpPost]
    public JsonResult Save(ViewModelX jsonMyModel)
    {
        var result = true;

        if (ModelState.IsValid)
        {

          result= MyClass.Insert (jsonMyModel.Address, jsonMyModel.Cod,
                jsonMyModel.idpurchase,
                jsonMyModel.idspend, jsonMyModel.Lname,
                jsonMyModel.Name, jsonMyModel.Tell, jsonMyModel.username);

        }
        else
        {

        }

        return Json(result, JsonRequestBehavior.AllowGet);

    }

私のクラス:

    public class ViewModelX
    {
    public Nullable< long > idpurchase { get; set; }
    public Nullable<long> idspend { get; set; }
    public string username { get; set; }
    public string Name { get; set; }
    public string Lname { get; set; }
    public string Tell { get; set; }
    public string Address { get; set; }
    public string CodPosti { get; set; }

}
4

2 に答える 2

0

clickハンドラーの最後に次を追加するだけです。

$('#myForm').submit();

myFormフォームの id 属性はどこにありますか。

コントローラーのアクションが、ビューが入力されたクラスに一致するパラメーターを受け入れると仮定すると、モデル バインダーは通常どおりそれを処理する必要があります。

于 2013-09-08T14:01:01.963 に答える
0

強く型付けされたモデルを使用していますか?

あなたが説明したことは、2つの方法で行うことができます。

  1. AJAXページをリロードせずにデータを投稿するために使用します。
  2. 通常の形式の投稿を使用してデータを投稿します。

AJAX の使用

あなたのコントローラーメソッドが次のようなものであると仮定すると:

[HttpPost]
public JsonResult Save(MyModel jsonMyModel)
{
 //do saving stuff
}

どこで、あなたのモデルMyModelは次のようになります

public class MyModel()
{
  public string Username { get; set;}
  public string Tell { get; set;}
  public string Name { get; set;}
  public string Mobile { get; set;}
  public string LastName { get; set;}
}

通常のjqueryまたはjavascriptを使用してコントローラーメソッドが受け入れるモデルを作成し、以下のようにAJAXを使用して投稿できます。

 $("#submit-btn2").click(function () { saveMyModel();});

 function SaveMyModel()
 {
        $.ajax({
                url: '@Url.Action("Method", "SomeController")',
                type: 'POST',
                contentType: 'application/json',
                data: JSON.stringify({
                    jsonMyModel: {
                        Username:  $("#username").val(),
                        Tell: $("#Tell ").val(),
                        Name: $('#listviewlabel').val(),
                        Mobile: $("#Name ").val(),
                        LastName:$("#Lname ").val() 
                    })
           });
 }

ノーマルフォームポストの使い方

このことを直接グーグルで検索できます。これは、アカウント コントローラーでも見つけることができます。

于 2013-09-08T14:01:10.890 に答える