我有一个搜索页面,如果列表中有结果,它会将此列表传递给视图。 但是,如果没有结果,我想将搜索到的文本发送到找不到结果视图。 我会怎么做呢?如何将字符串传递给ASP.NET MVC中的分部视图?
回答
您需要将搜索到的文本作为返回到视图的模型的一部分。然后你有两个选择 -
使用RenderPartial会将返回的视图传递给局部视图,所以你可以从那里访问你想要的值。
Html.RenderPartial("PartialView");
或者,您可以传递字符串作为模型使用
Html.RenderPartial("PartialView", Model.SearchedText);
,如果你想使用不同型号的没有结果的局部视图,这可能使意义上的局部视图。
<%Html.RenderPartial("SimpleTrustGridViewer", ViewData["departmentGrid"]); %>
此传递一个对象计算机[“departmentGrid”](这是来自非局部视图的可视数据)对局部视图SimpleTrustGridViewer。
简化:
<%Html.RenderPartial("myUserControl", myString); %>
而且你的局部视图继承这样的:
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<string>" %>
然后,在你的局部视图 '模式' 将传递的字符串。
部分视图,除非您明确传递其他内容,与父视图具有相同的模型。
从控制器传递到视图的ViewDataDictionary将从视图传递到部分视图。所以如果你想传递的字符串在ViewDataDictionary中,你不必传递它。
<%=Html.RenderPartial("NorResultFound")) %>
但是你可以用同样的看法是否有结果还是不行:在您的控制器只是
<%if (Model.ResultCount!=0){ %>
<%foreach(var result in Model){ %>
<%= // display results %>
<%}}%>
<%else {%>
<p>There is no results for <%=ViewData["keyword"]%> </p>
<%} %>
我同意你的看法,但我更喜欢使用强类型模型来代替mixin ViewData和模型。 我的模型将有2个道具(重构友好代码:D), class SearchResult { public IList
两种方法(你所谈论的观点,而不是局部的看法吧?) 1)在没有结果的情况下调用不同的视图作为模型传递字符串 2)创建一个包含搜索状态(找到x个项目,找不到匹配项等等)的模型以及到相同视图的结果列表,从而允许通过switch语句显示不同的结果。
我试过了,无法让它工作。说我有
<div id="SearchBar">
<% using (Html.BeginForm("IndexNoJavaScript", "Home"))
{%>
<%= Html.TextBox("SearchTextBox", ViewData["SearchText"]) %>
<input type="submit" value="Search" /> <% } %>
</div>
<% Html.RenderPartial("SearchResults"); %>
,当我尝试显示在此视图中搜索文本,像这样:
<%= Html.TextBox("SearchedText", ViewData["SearchText"]) %>
我的文本框为空。
你可以对div标签使用jquery和load()
动作,使用partial;结果是相似的。 这个load()
ajax方法用你想要的文本调用控制器。 like:
$('#divId').load('url/'+ serch content);
- 1. 如何将参数传递给ASP.NET MVC中的部分视图?
- 2. 将字典传递给视图Asp.net MVC
- 3. asp.net mvc - 将部分数据模型传递给局部视图
- 4. 在ASP.NET MVC中,如何将字符串变量传递给_Layout.cshtml视图?
- 5. asp.net mvc 1.0 - 如何将部分视图呈现为字符串
- 6. 在ASP.NET MVC中将视图中的字符串传递给控制器Razor
- 7. MVC 4 - 如何将模型数据传递给部分视图?
- 8. 我如何将单个字符串传递给部分视图从返回部分视图的动作
- 9. 将字符串传递到MVC4中的部分视图
- 10. 如何将数据从视图传递给ASP.NET MVC中的UserControl?
- 11. ASP.NET MVC:将字符串传递到视图
- 12. 将参数传递给部分视图
- 13. 如何将属性名称作为字符串传递给ASP.NET MVC中的@ HTML.TextboxFor()
- 14. 如何将模型传递给Asp .Net中的部分视图?
- 15. 如何将字符串传递给JOptionPane?
- 16. ASP.Net MVC将数据库字符串传递给CheckBox值
- 17. 将参数传递给MVC部分视图时感到困惑?
- 18. MVC 4将数据传递给部分视图 - 格式
- 19. MVC部分视图将模型传递给控制器
- 20. 将字符串动态传递给laravel4中的视图
- 21. 将字符串传递给$
- 22. 如何将字符串传递给epp_dodger?
- 23. 如何将xml文档作为字符串传递给asp.net webservice
- 24. 如何将json字符串传递给webmethod c#ASP.NET
- 25. 将上下文信息传递给ASP.NET MVC中的视图
- 26. 如何使用$ .ajax()将字符串传递给C#/ ASP.NET?
- 27. 如何将通过AJAX收到的数据传递给ASP MVC部分视图?
- 28. 如何在asp net mvc3中将部分视图的值传递给父视图
- 29. ASP.NET MVC 2 - 如何将查询字符串传递回响应?
- 30. ASP.NET:如何将值从本地资源传递给字符串?
我必须添加它作为模型的一部分。现在我需要重构我的代码:) – ddd 2009-05-27 09:47:43