【问题标题】:Jquery thickbox to work with Url.Action link in Asp.net mvc在 Asp.net mvc 中使用 Url.Action 链接的 Jquery Thickbox
【发布时间】:2010-07-26 22:57:04
【问题描述】:

我想实现一个 Jquery 厚框来显示从我在 ASP.Net MVC 中的数据库生成的图像。我的链接大致是这样的:

<a href="<%=Url.Action("ShowPhoto", "Item", new { id = pic.pictureID })  %>" class="thickbox"><img src="<%= Url.Action( "ShowThumbnail", "Item", new { id = pic.pictureID  } ) %>" alt="" width="100px" /></a>

但是,我遇到了由 Url.Action 链接引起的错误。

有人请帮帮我!!

编辑:抱歉,我忘了把错误输入

在 Visual Studio 中:

用户代码未处理 NullReferenceException。你调用的对象是空的。 (这在 UnitofWork.CurrentUnitOfWork.Dispose(); 中突出显示)

在我的错误日志中:

System.Web.HttpException (0x80004005): 一个潜在危险的 Request.Path 从客户端检测到值 (&)。在 System.Web.HttpRequest.ValidateInputIfRequiredByConfig() 在 System.Web.HttpApplication.ValidateRequestExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean & completedSynchronously)

System.Web.HttpException (0x80004005): 文件不存在。在 System.Web.StaticFileHandler.GetFileInfo(字符串 virtualPathWithPathInfo,字符串 物理路径,HttpResponse 响应)
在 System.Web.StaticFileHandler.ProcessRequestInternal(HttpContext 上下文,字符串 overrideVirtualPath)
在 System.Web.DefaultHttpHandler.BeginProcessRequest(HttpContext 上下文,AsyncCallback 回调, 对象状态)在 System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute() 在 System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean & completedSynchronously)

【问题讨论】:

  • 发布您的错误会有所帮助。

标签: jquery asp.net-mvc thickbox


【解决方案1】:

我让 Html.ActionLink 帮助器为我呈现包含代码的链接,如下所示:

    <%=Html.ActionLink(Resources.Localize.Routes_WidgetsCreate, "Create", "Widget",  new { modal = true },
                                      new
                                        {
                                            rel = "shadowbox;height=600;width=700",
                                            title = Resources.Localize.Routes_WidgetsCreate
                                        })%>

说明: Resources.Localize.Routes_WidgetsCreate 是对 Resources 类的引用以获取本地化字符串, “创建”是控制器动作, “小部件”是控制器, "new { model = true }" 是 QueryString 参数, "new { rel ... } " 这些是标签属性。

这是一个 Shadowbox 链接示例,该链接打开模式窗口,其中包含 ~/Widget/Create 返回的内容。

HTH

【讨论】:

  • 谢谢。但是,在尝试这个之前,我想先尝试一下thickbox。 ^^ 这是否适用于厚盒?对不起,一个菜鸟,但是你如何制作一个资源类来获取本地化字符串?
  • 这也适用于Thickbox,当然,如果Thickbox JS 选择了“rel”,则将“rel”替换为“class”,并检查“height”和“widght”属性,因为它们也可以在厚盒中有所不同。关于资源,只需在 App_GlobalResources 文件夹中添加一个新的 RESX 文件,编译它,您应该能够使用此约定 ResourceNamespace.ResourceClass.ResourceStringId 从代码中的任何位置(无论是视图/控制器/类)访问字符串.
【解决方案2】:

我不认为这与thickbox有关,但是您能否确认您的两个sn-ps代码(如下)实际上呈现了一个url?

<%=Url.Action("ShowPhoto", "Item", new { id = pic.pictureID })  %>

<%= Url.Action("ShowThumbnail", "Item", new { id = pic.pictureID }) %>

【讨论】:

猜你喜欢
  • 2011-08-21
  • 2013-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-11
  • 2011-09-18
  • 2011-05-19
相关资源
最近更新 更多