Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 对局部视图的Ajax调用不绑定MVC3_C#_Jquery_Ajax_Asp.net Mvc 3 - Fatal编程技术网

C# 对局部视图的Ajax调用不绑定MVC3

C# 对局部视图的Ajax调用不绑定MVC3,c#,jquery,ajax,asp.net-mvc-3,C#,Jquery,Ajax,Asp.net Mvc 3,我从下拉菜单中选择一个项目,然后单击add=>ajax调用一个返回JsonResult的方法。然后,这些数据应该发送到服务器端的另一个函数PartialViewResult:public PartialViewResult_SkupinaRow(SkupinaRow SkupinaRow),它生成一个带有一些文本框和标签的新tr。我的问题是没有装订。在_SkupinaRow(SkupinaRow SkupinaRow)中调试时,我得到Null 我已定义以下域模型: public class

我从下拉菜单中选择一个项目,然后单击add=>ajax调用一个返回JsonResult的方法。然后,这些数据应该发送到服务器端的另一个函数PartialViewResult:public PartialViewResult_SkupinaRow(SkupinaRow SkupinaRow),它生成一个带有一些文本框和标签的新tr。我的问题是没有装订。在_SkupinaRow(SkupinaRow SkupinaRow)中调试时,我得到Null

我已定义以下域模型:

  public class skupinaRow
{

   public BONUSMALUS bonusmalus { get; set; } //items 
   public KOLEDAR koledar { get; set; } //calendar

}
局部视图:

 @model ObracunPlac.ViewModel.skupinaRow

 @Html.HiddenFor(x => x.bonusmalus.bon_id)

部分视图代码:

  public PartialViewResult _SkupinaRow(skupinaRow skupinaRow)
    {
        return PartialView("_SkupinaRow", skupinaRow);
    }
Ajax调用:

    $("#addItemPrihodki").live("click", function () {

    var id = $("#prihodkidodaj option:selected").val()

    var skupinaRow = {
        bonusmalus:{},
        koledar:{}
    }

    jQuery.getJSON("/Placa/getBonusMalus/?id=" + id, function (data) {
    console.log("JSON Data: " + data.koledar.kol_id);

        skupinaRow.koledar.kol_id = data.koledar.kol_id,  //ok

        skupinaRow.bonusmalus.bon_id = data.bonusmalus.bon_id,  //ok




        //alert(JSON.stringify(GetBonusMalusModel($("#bonusdodaj option:selected").val())));
       alert(JSON.stringify(data));
       // alert(skupinaRow.serialize());

        $.ajax({
            url: "../_skupinaRow",
            cache: false,
            data: JSON.stringify(skupinaRow),
            //data: JSON.stringify(data),
            datatype: JSON,
            success: function (html) {
                $("#editorRowPrihodki table tr#dodajNov").before(html);
                  }
               ,
            error: function (XMLHttpRequest, textStatus, errorThrown) {
               alert('error'+"+++"+textStatus+"--- "+errorThrown);      
        },

        });

    });

    return false;
});




    public JsonResult getBonusMalus(int id)
{

    KOLEDAR koledar = db.KOLEDAR.Single(r => r.kol_id == KoledarID); 
    BONUSMALUS bm = db.BONUSMALUS.Single(r => r.bon_id == id);
    skupinaRow model = new skupinaRow
    {             
    koledar =koledar,
    bonusmalus = bm           
              };

    // return Json result using LINQ to SQL 

    return new JsonResult
    {
        JsonRequestBehavior = JsonRequestBehavior.AllowGet,
        Data = model
    };
}
调试图片:

当我有一个bonusmalus模型时,这是有效的,但现在我有了两个,所以我创建了modelView


如何将ViewModel SkupinaRow绑定到强类型SkupinaRow的局部视图?

如果您仅使用AJAX将值转换为json?然后你可以使用这种方法

在控制器中将具有正常post的窗体设置为“操作”

在视图中使用jQuery,并在提交表单时编写此命令

$("form").submit(function(){           
            $("#DropDown_Items").val(JSON.stringify(data));
        });

现在,您可以在操作方法中使用此选项

起初我需要来自1个表的数据,但现在我需要来自2个表的数据。如果我使用一张桌子,装订工作就可以了。但是现在我用两个模型bonusmauls和koledar制作了一个viewModel,现在绑定不起作用了。单击后,我调用一个函数,并从下拉列表值发送id以获取全部数据,并希望将其直接注入到部分视图。我用过这个。但我有下拉菜单和按钮。我选择了一个项目,即.car,然后我想用db填充的数据返回一个新行。在局部视图中,您可以添加一个额外的代码,如@if(NewRow.Id!=null){Put a here},并调用相同的局部视图,如果存在ter值,则该行将显示,否则不会显示