我不想在浏览器窗口中显示PNG,而是希望操作结果触发文件下载对话框(您知道打开,另存为等).我可以使用未知的内容类型来使用下面的代码,但是用户必须在文件名的末尾键入.png.如何在不强制用户输入文件扩展名的情况下完成此行为?
public ActionResult DownloadAdTemplate(string pathCode)
{
var imgPath = Server.MapPath(service.GetTemplatePath(pathCode));
return base.File(imgPath, "application/unknown");
}
Run Code Online (Sandbox Code Playgroud)
public ActionResult DownloadAdTemplate(string pathCode)
{
var imgPath = Server.MapPath(service.GetTemplatePath(pathCode));
Response.AddHeader("Content-Disposition", "attachment;filename=DealerAdTemplate.png");
Response.WriteFile(imgPath);
Response.End();
return null;
}
Run Code Online (Sandbox Code Playgroud) 我有一个非常简单的测试用例,它使用的是Mockito和Spring Test框架.当我做
when(pcUserService.read("1")).thenReturn(pcUser);
Run Code Online (Sandbox Code Playgroud)
我得到了这个例外.
org.mockito.exceptions.misusing.MissingMethodInvocationException:
when() requires an argument which has to be 'a method call on a mock'.
For example:
when(mock.getArticles()).thenReturn(articles);
Also, this error might show up because:
1. you stub either of: final/private/equals()/hashCode() methods.
Those methods *cannot* be stubbed/verified.
2. inside when() you don't call method on mock but on some other object.
at com.project.cleaner.controller.test.PcUserControllerTest.shouldGetPcUser(PcUserControllerTest.java:93)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
Run Code Online (Sandbox Code Playgroud)
我尝试过不同的方法,但继续收到此错误消息.我正在使用Spring 3.1.0.RELEASE和Mockito.请分享并指导我正确的方向.
我有一个控制器,有这样的路线:
#/用品/ 1234
我想在不完全重新加载控制器的情况下更改路径,因此我可以保持控制器中其他内容的位置不变(列出滚动)
我可以想到几种方法来做到这一点,但它们都非常难看.做这样的事情有最好的做法吗?我尝试使用reloadOnSearch:false,但它似乎没有改变任何东西.
当使用带有Symfony2.x应用程序的开发模式时,通常可以在语言环境中使用.因此,此类函数无法按预期工作(例如,尝试在localhost下获取当前IP).这可能是一个问题,例如当人们尝试使用这种基于ip的Web服务时.因此,我只想知道如果Symfony2应用程序在dev模式下运行,如何检查控制器内部.以这种方式,可以根据模式设置控制器的行为.
任何的想法?
我正在使用spring 2.5和注释来配置我的spring-mvc web上下文.不幸的是,我无法让以下工作.我不确定这是一个错误(似乎是这样),或者是否存在对注释和接口实现子类化如何工作的基本误解.
例如,
@Controller
@RequestMapping("url-mapping-here")
public class Foo {
@RequestMapping(method=RequestMethod.GET)
public void showForm() {
...
}
@RequestMapping(method=RequestMethod.POST)
public String processForm() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
工作良好.当上下文启动时,会发现此处理程序处理的URL,并且一切都很好.
然而,这不是:
@Controller
@RequestMapping("url-mapping-here")
public class Foo implements Bar {
@RequestMapping(method=RequestMethod.GET)
public void showForm() {
...
}
@RequestMapping(method=RequestMethod.POST)
public String processForm() {
...
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试拉出网址时,我得到以下令人讨厌的堆栈跟踪:
javax.servlet.ServletException: No adapter for handler [com.shaneleopard.web.controller.RegistrationController@e973e3]: Does your handler implement a supported interface like Controller?
org.springframework.web.servlet.DispatcherServlet.getHandlerAdapter(DispatcherServlet.java:1091)
org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:874)
org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:809)
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571)
org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501)
javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
Run Code Online (Sandbox Code Playgroud)
但是,如果我将Bar更改为抽象超类并让Foo扩展它,那么它再次起作用.
@Controller
@RequestMapping("url-mapping-here")
public class Foo extends Bar …Run Code Online (Sandbox Code Playgroud) 在rails中,我可以通过controller_name获取当前控制器的名称,并通过调用action_name获取当前操作.我正在寻找类似的运行时反射来获取以下内容:
例如,我是一个具有"添加"和"编辑"操作的产品控制器.我是否可以通过编程方式提取这些操作的名称以向用户显示支持哪些操作?
我已经看过一个需要使用的方法,ActionController::Routing::Routes.named_routes.routes.each
但我无法让它工作.ActionDispatch::Routing::Routes当我使用它时,我得到了未初始化的常量错误.
如果有任何好的教程或文档可以帮助我理解rails反射功能.我搜索了它,但我主要是积极的记录反射相关的博客.我正在寻找能让我在运行时获取有关控制器和操作/方法的信息的东西.
谢谢,
Tabrez
我有一个控制器,和一个定义的方法......
[HttpPost]
public ActionResult UpdateUser(UserInformation model){
// Instead of throwing exception
throw new InvalidOperationException("Something went wrong");
// I need something like
return ExecutionError("Error Message");
// which should be received as an error to my
// $.ajax at client side...
}
Run Code Online (Sandbox Code Playgroud)
异常问题
我需要一些简单的方法来报告我的$ .ajax调用的一些自定义http状态,以便它在客户端产生错误,但我不想抛出错误.
UPDATE
我无法更改客户端脚本,因为它与其他数据源不一致.
到目前为止,HttpStatusCodeResult应该可以正常工作,但这是导致此问题的IIS.无论我设置了什么错误消息,尝试了所有答案,我仍然只收到默认消息.
所以我是AngularJS的新手,我正在尝试构建一个非常简单的列表应用程序,我可以创建一个ng-repeat项目列表,然后将所选项目推送到另一个ng-repeat列表中.虽然我的问题似乎很简单,但我还是找不到合适的解决方案.
所以这是简化的标记:
<body ng-app="MyApp">
<div id="MyApp" ng-controller="mainController">
<div id="AddItem">
<h3>Add Item</h3>
<input value="1" type="number" placeholder="1" ng-model="itemAmount">
<input value="" type="text" placeholder="Name of Item" ng-model="itemName">
<br/>
<button ng-click="addItem()">Add to list</button>
</div>
<!-- begin: LIST OF CHECKED ITEMS -->
<div id="CheckedList">
<h3>Checked Items: {{getTotalCheckedItems()}}</h3>
<h4>Checked:</h4>
<table>
<tr ng-repeat="item in checked" class="item-checked">
<td><b>amount:</b> {{item.amount}} -</td>
<td><b>name:</b> {{item.name}} -</td>
<td>
<i>this item is checked!</i>
</td>
</tr>
</table>
</div>
<!-- end: LIST OF CHECKED ITEMS -->
<!-- begin: LIST OF UNCHECKED ITEMS -->
<div id="UncheckedList">
<h3>Unchecked …Run Code Online (Sandbox Code Playgroud) 我是一名iOS开发人员,我在项目中使用Massive View控制器,因此我一直在寻找一种更好的方法来构建我的项目,并且遇到了MVVM(Model-View-ViewModel)架构.我一直在用iOS阅读很多MVVM,我有几个问题.我将用一个例子来解释我的问题.
我有一个名为的控制器LoginViewController.
LoginViewController.swift
import UIKit
class LoginViewController: UIViewController {
@IBOutlet private var usernameTextField: UITextField!
@IBOutlet private var passwordTextField: UITextField!
private let loginViewModel = LoginViewModel()
override func viewDidLoad() {
super.viewDidLoad()
}
@IBAction func loginButtonPressed(sender: UIButton) {
loginViewModel.login()
}
}
Run Code Online (Sandbox Code Playgroud)
它没有Model类.但我确实创建了一个名为LoginViewModel放置验证逻辑和网络调用的视图模型.
LoginViewModel.swift
import Foundation
class LoginViewModel {
var username: String?
var password: String?
init(username: String? = nil, password: String? = nil) {
self.username = username
self.password = password
}
func validate() {
if username == nil || …Run Code Online (Sandbox Code Playgroud) 我在控制器中到处都有这个错误,我"渲染"或通过"getParameter"访问变量:
预期"\ Symfony\Bundle\FrameworkBundle\Controller\string"得到字符串
怎么了 ?
controller ×10
angularjs ×2
asp.net-mvc ×2
c# ×2
java ×2
ajax ×1
annotations ×1
arrays ×1
containers ×1
download ×1
image ×1
ios ×1
methods ×1
mockito ×1
model ×1
mvvm ×1
ng-repeat ×1
persist ×1
php ×1
phpstorm ×1
reflection ×1
reload ×1
routes ×1
spring-mvc ×1
spring-test ×1
string ×1
symfony ×1
symfony4 ×1
viewmodel ×1