1
For example, the User typed the title of a publication, and marked the generous Action and Adventure, or the user did not type any title, but wants to see all publications that fit these genres. How can I do this search query?
My tables:
Publicacao
Generos
PublicacaoGenero(IdPublicacao e IdGenero)
Action:
public ActionResult Publicacoes(PesquisaPublicacoesViewModel viewModel = null)
        {
            if (viewModel == null)
            {
                PesquisaPublicacoesViewModel p = new PesquisaPublicacoesViewModel();
                p.TodosOsGeneros = db.Generos.ToList();
                p.PublicacoesSelecionadas = db.Publicacao.Where(x => x.Titulo.StartsWith(p.Titulo) && x.Aprovado).ToList();
                return View(p);
            }
            viewModel.TodosOsGeneros = db.Generos.ToList();
            if (string.IsNullOrEmpty(viewModel.Titulo))
            {
                viewModel.PublicacoesSelecionadas = db.Publicacao.Where(p => p.Aprovado).ToList();
            }
            else
            {
                viewModel.PublicacoesSelecionadas = db.Publicacao.Where(p => p.Titulo.StartsWith(viewModel.Titulo) && p.Aprovado).ToList();
            }
            return View(viewModel);
        }
View:
@model AllFiction.ViewModels.PesquisaPublicacoesViewModel
@using(Html.BeginForm("Publicacoes","Publicacoes",FormMethod.Get))
{
@Html.TextBox("Titulo", null, new {id="txtTitulo" })
@Html.CheckBoxListFor(model => model.IdGenerosSelecionados,
                        model => model.TodosOsGeneros,
                        genero => genero.IdGenero,
                        genero => genero.Genero,
                        model => model.GenerosSelecionados)
}
@foreach (var p in Model.PublicacoesSelecionadas)
{
    @p.Usuario1.NomeCompleto
    @p.Titulo
}
Viewmodel
public class PesquisaPublicacoesViewModel
    {
        public string Titulo { get; set; }
        public IEnumerable<Publicacao> PublicacoesSelecionadas { get; set; }
        public string[] IdGenerosSelecionados { get; set; }
        public IList<Generos> TodosOsGeneros;
        public IList<Generos> GenerosSelecionados;
    }
Missed you put the Viewmodel code.
– Leonel Sanches da Silva
Related: http://answall.com/questions/40615/pesquisa-com-checkbox/40624
– Leonel Sanches da Silva
@Gypsy omorrisonmendez Edited.
– Ryan Santos