Comment puis-je créer une fonction "recherche" avec vue partielle en asp.net mvc 4
Je suis en utilisant ASP.NET MVC 4 avec entity framework, le premier modèle.
Dans mon "Masterpage.cshtml" je veux avoir une vue partielle qui contient une zone de texte et un bouton.
La recherche est à la recherche pour le titre des éléments, si le texte contient un titre des éléments d'afficher ces éléments.
Lorsqu'un texte est soumis à la @renderbody()
devrait afficher une vue avec les éléments.
Ma question est comment puis-je faire cela dans le bon sens? ce qui est une bonne et facile d'approche?
Jusqu'à présent, je l'ai fait:
Créé une méthode dans mon référentiel qui fait la fonction de recherche:
public List<News> Search(string query)
{
var queryz = db.News.Where(x => x.Title.Contains(query));
return queryz.ToList();
}
Maintenant, quand il s'agit de mon Searchcontroller im un peu perdu comment faire cela. Car un actionresult besoin d'être le partialview qui possède une chaîne de paramètre de requête et un autre qui contient une vue qui affiche les articles?
Ce que j'ai fait à l'instant est d'avoir l'ensemble du processus en même actionresult:
Repository rep = new Repository();
[HttpPost]
public ActionResult Search(string query)
{
var searchlist = rep.Search(query);
var model = new ItemViewModel()
{
NewsList = new List<NewsViewModel>()
};
foreach (var NewsItems in searchlist)
{
FillProductToModel(model, NewsItems);
}
return View(model);
}
private void FillProductToModel(ItemViewModel model, News news)
{
var productViewModel = new NewsViewModel
{
Description = news.Description,
NewsId = news.Id,
Title = news.Title,
link = news.Link,
Imageurl = news.Image,
PubDate = news.Date,
};
model.NewsList.Add(productViewModel);
}
toute sorte d'aide est apprécié de beaucoup de choses!
le partialview?
assurez-vous. plus important de votre zone de recherche.
OriginalL'auteur Obsivus | 2013-05-19
Vous devez vous connecter pour publier un commentaire.
Vous pourriez utiliser l'approche suivante:
Index.cshtml
Ont un DIV qui appelle la recherche de contrôleur de l'action, et un autre qui va afficher les résultats.
_SearchFormPartial.cshtml
Créer une vue partielle qui contiendra le formulaire de recherche. Vous pouvez utiliser
Ajax.BeginForm
ainsi, lorsqu'un utilisateur effectue une recherche, les résultats s'affichent dans lasearch-results
DIV dans la page d'Index.cshtml par AJAX.UpdateTargetId
spécifie que nous voulons transmettre les résultats de la recherche pour lesearch-results
DIV.Dans votre contrôleur, vous aurez besoin d'une action pour afficher le formulaire (vue partielle ci-dessus) et un autre pour traiter la requête de recherche et de retour chez elle, une autre vue partielle qui va afficher les résultats:
_SearchResultsPartial.cshtml
Cette partielle affichera les résultats. Il est fortement tapé dans un
ItemViewModel
.Désolé, j'ai oublié à ce sujet, voir modifier. Est-il un nombre de champs de recherche, ou juste une?
juste une zone de texte, mais la zone de texte valeur du paramètre de chaîne à l'intérieur de la actionresults? ou dois-je faire quelque chose?
Voir modifier. La chaîne de valeur dans
TextBox
doit correspondre à ce qui est transmis dans l'action du contrôleur.aight, merci s'accoupler!
OriginalL'auteur MattSull