小编Rob*_*ing的帖子

NGINX 反向代理背后的 ASP.NET MVC

我目前正在开发一个项目,该项目需要我们当前的 ASP.NET MVC5 Web 应用程序之一位于客户端将控制的 NGINX 反向代理后面。

我是 NGINX 的新手,所以缺乏知识。

反向代理将放置在子路径中。(下面的例子)

http://localhost:9999/foo/bar/

然后,这将代理到 MVC5 应用程序的根(端口 9998),我已在本地设置了 NGINX 以测试该站点是否按预期工作。我们使用资源的绝对路径(托管在内部 CDN 中),因此所有这些都按预期加载。

我的问题- 反向代理工作正常并显示应用程序的根页面。当点击使用 this.RedirectToAction() 或 @html.ActionLink() 等创建的任何控制器方法/页面链接时,问题开始出现。

MVC 应用程序没有意识到它正在反向代理后面运行,并从其派生 URL 中删除了该子路径。

所以重定向到家庭控制器看起来像

http://本地主机:9999/home

代替 :

http://localhost:9999/foo/bar/home

有人有什么想法可以抵消这个吗?我可以看到 .NET core 有一个解决方法,但看不到 MVC5 的任何内容。我可以使用 this.Redirect() 并指定绝对路径,但应用程序很大,并且在没有反向代理的其他场景中使用。

这个问题可以通过我的 NGINX 配置来解决吗?我在下面包含了我的配置:

#user  nobody;
worker_processes  1;

events {
worker_connections  1024;
}

http {
include       mime.types;
default_type  application/octet-stream;
sendfile        on;


keepalive_timeout  65;

server {
    listen       9999;
    server_name  localhost;

    location /foo/bar/ {

        rewrite ^/foo/bar/(.*)$ /$1 break;
        proxy_pass …
Run Code Online (Sandbox Code Playgroud)

c# iis asp.net-mvc reverse-proxy nginx

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

HTTP帖子上的MVC Model子对象null

希望可以有人帮帮我.我是MVC新手,来自winforms/console/vb6background.

抱歉,如果这已经得到解答,我正在努力了解如何解决以下问题.

我有一个视图模型:

public class testvm
{
    public int id { get; set; }
    public DateTime date { get; set; }
    public student studentID { get; set; }

    public testvm() { }

    public testvm (student s)
    {
        studentID = s;
    }
}
Run Code Online (Sandbox Code Playgroud)

在传递给视图之前,我预先填充了此ViewModel的student子对象.

学生型号:

public class student
{
    [Key]
    public int ID { get; set; }
    public string Name { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是当模型返回到create HTTP post方法时,student子对象为空.

控制器代码:

// GET: testvms/Create
public ActionResult Create(int sId)
{
    student a = db.students.Find(sId); …
Run Code Online (Sandbox Code Playgroud)

c# model-view-controller asp.net-mvc asp.net-mvc-4 asp.net-mvc-5

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