标签: requestcontext

如何在控制器外部访问RequestContext?

背景

我试图将业务逻辑从控制器转移到他们自己的服务中.

调节器

public class AccountController : Controller
{
    private readonly IAccountService _accountService; 

    public AccountController(IAccountService accountService)
    {
        _accountService = accountService;
    }

    ....
}
Run Code Online (Sandbox Code Playgroud)

我正在使用Unity注入依赖项.我想Url.GenerateUrl()在实现中使用helper方法IAccountService但是Url是针对控制器的属性.

我查看了MVC源代码,看看它是如何完成的,但它要求我RequestContext从控制器外部访问,我不知道该怎么做.

如何从控制器外部访问RequestContext?如果这不能解决我的问题,我如何解决我的设置问题?

asp.net-mvc dependency-injection urlhelper requestcontext

19
推荐指数
2
解决办法
2万
查看次数

如何在基于类的通用视图中访问RequestContext?

我在urls.py中有这条路径:

archive_index_dict = {
    'queryset': News.objects.filter(show=True),
    'date_field': 'date',
    'template_object_name': 'object_list',
}

...

url(r'^$', 'django.views.generic.date_based.archive_index',
        archive_index_dict, name='news_archive_index'
    ),
Run Code Online (Sandbox Code Playgroud)

现在我想在模板中检测页面是否是最新的(这是用于菜单样式).既不 在模板中工作{{ request.path }}也不{{ request.get_full_path }}工作.

我应该用什么呢?

要获得request模板我不得不添加可django.core.context_processors.requestTEMPLATE_CONTEXT_PROCESSORS.默认情况下不设置此项(因为django 1.3).

django requestcontext django-generic-views class-based-views

17
推荐指数
1
解决办法
4015
查看次数

CSRF验证失败.请求中止

我尝试构建一个非常简单的网站,可以将数据添加到sqlite3数据库中.我有一个带有两个文本输入的POST表单.

index.html的:

{% if top_list %}
    <ul>
    <b><pre>Name    Total steps</pre></b>
    {% for t in top_list %}
        <pre>{{t.name}} {{t.total_steps}}</pre>
    {% endfor %}
    </ul>
    {% else %}
    <p>No data available.</p>
{% endif %}
<br>
<form action="/steps_count/" method="post">
    {% csrf_token %}
    Name: <input type="text" name="Name" /><br />
    Steps: <input type="text" name="Steps" /><br />
   <input type="submit" value="Add" />
 </form>
Run Code Online (Sandbox Code Playgroud)

forms.py:

from django import forms
from steps_count.models import Top_List

class Top_List_Form(forms.ModelForm):
    class Meta:
        model=Top_List
Run Code Online (Sandbox Code Playgroud)

views.py:

# Create your views here.
from django.template import Context, loader …
Run Code Online (Sandbox Code Playgroud)

python django csrf requestcontext

14
推荐指数
5
解决办法
6万
查看次数

我可以访问global.asax.cs中的虚拟目录名吗?

该属性HttpContext.Current.Request.ApplicationPath表示IIS或WebDev.WebServer中的虚拟目录.

 HttpContext.Current.Request.ApplicationPath evaluates to "/virtualdirectory"
Run Code Online (Sandbox Code Playgroud)

这可以与VirtualPathUtility路径根相关联使用:

 VirtualPathUtility.ToAbsolute("~/images/cat.jpg",
                               HttpContext.Current.Request.ApplicationPath)

 // (this evaluates to "/virtualdirectory/images/cat.jpg")
Run Code Online (Sandbox Code Playgroud)

在IIS6和WebDev.WebServer Request对象可用global.asax.cs的,但IIS7抱怨说,它是"在目前情况下不可用".因此上面的第二行代码可以工作,但不能在IIS7中工作.

问题是我需要访问其中的虚拟directroy名称global.asax.cs.我需要它来构建一些在动态创建的CSS中使用的路径.有没有其他方法可以访问此值?

编辑:这是您在IIS 7中调用HttpContext.Current.RequestApplication_Start下的global.asax.cs时出现的错误:

 HttpException (0x80004005): Request is not available in this context]
    System.Web.HttpContext.get_Request() +8789264
Run Code Online (Sandbox Code Playgroud)

asp.net requestcontext

7
推荐指数
1
解决办法
4841
查看次数

如何使用PrimeFaces的RequestContext将POJO作为回调参数发送?

我可以发送回调参数,只要我只发送一些像String这样的原始类型,它就可以完美地工作.但即使是最简单的POJO也是如此.PrimeFaces指南说RequestContext.addCallbackParam()方法可以处理POJO并将它们转换为JSON.我不知道为什么它不适用于我的情况.

有人这样做过吗?

callback pojo args requestcontext primefaces

6
推荐指数
1
解决办法
4273
查看次数

为什么我必须在所有响应中传递RequestContext?

我想突出显示导航菜单中的当前页面.显然,当你在他们的页面上时,我需要给菜单链接一个类似'active'的类.这是一个经典问题,我已经看到了很多解决方案.我的问题是我讨厌他们所有人,并认为他们都不是很干.例如:

@register.simple_tag
def active(request, pattern):
    import re
    if re.search(pattern, request.path):
        return 'active'
    return ''

----

{% load tags %}
<div id="navigation">
    <a class="{% active request "^/about/" %}" href="/about/">About</a>
    <a class="{% active request "^/contact/" %}" href="/contact/">Contact</a>
    <a class="{% active request "^/services/" %}" href="/services/">Services</a>
</div>
Run Code Online (Sandbox Code Playgroud)

标记会获取您当前的请求和网址表达式,如果您当前在此页面上,则会返回"有效".或者,这可以使用命名视图而不是URL来完成,但原理是相同的.

我的主要问题是我的导航将在99%的视图中被调用,然而,为了获取当前请求变量,我仍然使用以下内容解析RequestContext到模板:

def contact(request):
    # snip ...
    return render_to_response(
                'contact.html',
                { 'myvar' : myvar },
                context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)

为什么我需要将这个context_instance行添加到我的每个视图中,除非其中一个人可能只需要一个请求变量,以便获取当前的URL /视图以突出显示活动链接?这看起来非常潮湿,特别是对于必须在大多数django网站中的功能.我希望默认情况下包含请求,并且可以选择禁止它.我找不到在中间件中执行此操作的方法,因为在视图返回后,我无法在模板呈现之前拦截模板.

有什么建议?

navigation django django-templates django-views requestcontext

5
推荐指数
1
解决办法
1619
查看次数

阐明GWT RequestFactory和RequestContext的工作原理

我正在尝试将RequestFactory和Editor框架实现到我的应用程序中.我甚至在研究了论坛,谷歌开发者论坛以及其他人之后发现,有些基本的东西我不理解将RequestContext与RequestFactory一起使用.这是我的场景:
我有一个简单的实体,它有三个字段,id,version,描述名为CmsObjectType.我有一个对应的EntityProxy和一个CmsObjectTypeServiceDAO与我的CRUD操作.我还实现了ServiceLocator和ObjectLocator类.这段代码都编译并运行.

我还创建了一个简单的测试用例来测试CRUD操作,使用以下代码:

public class RequestFactoryProvider {

public static CmsRequestFactory get() {
    SimpleEventBus eventBus = new SimpleEventBus();
    CmsRequestFactory requestFactory = RequestFactoryMagic.create(CmsRequestFactory.class);
    ServiceLayer serviceLayer = ServiceLayer.create();

    SimpleRequestProcessor processor = new SimpleRequestProcessor(
            serviceLayer);
    requestFactory.initialize(eventBus, new InProcessRequestTransport(
            processor));
    return requestFactory;
}
Run Code Online (Sandbox Code Playgroud)

}

考试:

public class TestCmsObjectTypeRequest extends Assert {

private static CmsRequestFactory requestFactory;
private static CmsObjectTypeRequestContext objectTypeRequest;
private Long newId;

@Before
public void setUp() {
    requestFactory = RequestFactoryProvider.get();
    objectTypeRequest = requestFactory.objectTypeRequest();
}

    @Test
public void testEdit() {
    final CmsObjectTypeProxy newType = objectTypeRequest
            .create(CmsObjectTypeProxy.class); …
Run Code Online (Sandbox Code Playgroud)

gwt requestcontext requestfactory

5
推荐指数
1
解决办法
8857
查看次数

我可以设置EntityProxy的默认字段值吗?

说我有这个:

TimeEntryProxy timeEntry = someRequestContext.create(TimeEntryProxy.class);
Run Code Online (Sandbox Code Playgroud)

创建的代理为空.有没有办法用默认值设置它的一些字段?例如,此代理的timeAllocation是double.可以将其设置为0而不必执行此操作:

timeEntry.setTimeAllocation(0);
Run Code Online (Sandbox Code Playgroud)

谢谢

gwt requestcontext requestfactory

5
推荐指数
1
解决办法
169
查看次数

Primefaces:RequestContext.execute - Javascript 被调用两次

我正在使用 primefaces 并且在 ajax 调用结束时执行 JavaScript 时遇到问题。我向 RequestContext 添加了一些动作,它被执行了两次!

RequestContext.getCurrentInstance().execute("alert('I'm here!')");
Run Code Online (Sandbox Code Playgroud)

它也在我从服务器返回的 XML 中嵌入了两次 - 两次相同的组件和相同的节点。

Primefaces 版本是 5.3.10

任何想法这里出了什么问题?谢谢。

javascript requestcontext primefaces

5
推荐指数
1
解决办法
958
查看次数

如何解决“找不到模块‘请求上下文’的声明文件。”?

我目前正在处理三个文件,分别是 index.js、index.main.js 和 app.js。我正在使用请求上下文从 index.main.js 中获取一个变量并将其传递给 index.js。

在 app.js(我在服务器文件夹中创建的文件)中,我有以下代码

    //full code in app.js

    const contextService = require("request-context");
    const app = express();

    app.use(contextService.middleware("request"));
Run Code Online (Sandbox Code Playgroud)

我试过运行以下命令

npm install --save typescript @types/node @types/react @types/react-dom @types/jest

npm install -D @types/request-context
Run Code Online (Sandbox Code Playgroud)

并在导入前尝试使用

// @ts-ignore
Run Code Online (Sandbox Code Playgroud)

无济于事。

当我检查我的 app.js 时,我注意到“require”这个词上有三个点,它显示:

找不到模块“请求上下文”的声明文件。'/home/servertest/Desktop/folder/folder1/src/component_NodeJS/server/node_modules/request-context/lib/index.js' 隐式具有 'any' 类型。尝试npm install @types/request-context它是否存在或添加一个包含declare module 'request-context';ts(7016)的新声明 (.d.ts) 文件

在 index.main.js 我有以下内容

 async function listFilesInDepth()

    {
      const {Storage} = require('@google-cloud/storage');

      const storage = new Storage();

      const bucketName = 'probizmy';

      const [files] = await …
Run Code Online (Sandbox Code Playgroud)

requestcontext node.js node-modules typescript

5
推荐指数
1
解决办法
2万
查看次数