0

メインページでタブ (jQuery UI タブ) を動的に作成し、Ajax を使用して部分ビューをロードしています。この部分ビューには がありviewmodel、他の部分ビューが含まれています。部分ビューはstrTypd上の要素に対するものviewmodelです。要素を渡そうとすると、エラーが発生します。

「主な部分図」

@model HMSDB.ViewModels.vm_administrar_permisos

<div id="PerAdmGroupBoxUser">

  <h3>Seleccion de usuarios</h3>
  <div>
      <div id="PerAdmUsrGrid">          
          @Html.Partial("_BuscarUsuario", @Model.vmBuscarUsuario) //<-- ERROR

      </div>
      <div id="PerAdmUsrData">
          @Html.Action("_DetalleUsuario", "Usuario")
      </div>
  </div>
</div>

メインの部分ビューのモデル:

  public class vm_administrar_permisos
    {
        public vm_usuario_seleccionado vmUsuarioSeleccionado { get; set; }
        public vm_buscar_usuario vmBuscarUsuario { get; set; }
        public IEnumerable<Permisos_Rol_User> roles { get; set; }
        public IEnumerable<Permisos_Grupo_User> grupos { get; set; }
    }

子部分ビュー:

@model HMSDB.ViewModels.vm_buscar_usuario


  <h3>Seleccion de usuarios</h3>

無効な操作例外:

The passed model´s element to the dictionary is 
of type:'HMSDB.ViewModels.vm_administrar_permisos', but this dictionary requires a
model´s element of type 'HMSDB.ViewModels.vm_buscar_usuario'

編集: 親の部分的なビューの呼び出し:

   function getTabContent(idT, urlC) {                               //ajax call to partial view
      $.ajax({
         url: urlC,
        type: 'GET',
       async: false,
          success: function (result) {
              $("#"+idT).html(result);
    }
  });

};

コントローラ:

public ActionResult _Administrar()
{
    vm_administrar_permisos model = new vm_administrar_permisos();

    model.grupos = db_cm.Permisos_Grupo_User.Include("Permisos_Grupo")
                   .Where(gu => gu.id_user == HttpContext.User.Identity.Name && gu.conceder == true);

    model.roles = db_cm.Permisos_Rol_User.Include("Permisos_Rol")
                  .Where(ur => ur.id_user == HttpContext.User.Identity.Name && ur.conceder == true);  
    return PartialView(model);
}
4

1 に答える 1

1

私の疑いは、古いバージョンのマークアップがどこかにあるということです (_Administrar.cshtml など)。Controller.PartialViewandの最初のパラメーターとして「~」で始まるビューへのフル パスを指定してみてくださいHtml.Partial

model.vmBuscarUsuarioまた、作成/割り当てられるコードを省略しましたか?

于 2013-06-06T19:20:39.053 に答える