IIS express不会在一个文件夹中显示index.cshtml,但在其他文件夹中显示

时间:2017-09-04 08:56:12

标签: c# asp.net asp.net-mvc

我正在使用C#和.Net Framework 4.7开发ASP.NET MVC 5应用程序。

我刚刚创建了一个新的ASP.NET MVC 5控制器:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace TRZF.Web.API.Controllers
{
    public class ReportsController : Controller
    {
        // GET: Reports
        public ActionResult Index()
        {
            return View();
        }
    }
}

我右键点击Index方法,然后选择Add View...。它已在名为cshtml的文件夹.\Views\Reports中创建了一个新的Index.cshtml文件,其中包含以下内容:

@{
    ViewBag.Title = Resources.ReportsIndexTitle;
    Layout = "~/Views/Shared/_Layout.cshtml";
}

@section Styles
{
    <link href="~/css/tables.css" rel="stylesheet" />
    <link href="~/css/jquery-ui.css" rel="stylesheet" />
}

@section Body
{
    <div class="bodyBackground1">
        <div class="titulo">
            <h2>@Resources.ReportsIndexHeader</h2>
        </div>
        <div class="formPO">

        </div>
        <div class="footer">
            <p>@Resources.ViewGenericInvConCopyright</p>
        </div><!-- end .footer -->
    </div>
}

@section scripts
{
}

我用它来导航到该文件:

@Html.ActionLink(Resources.GetReports, "Index", "Reports")

但是我在ReportsController.Index方法中添加了断点并且它没有停止。

我有更多的控制器正在工作,我对他们做了同样的事情我已经知道但是这个不起作用。所有这些都很完美,显示了他们的索引页面并停在Index方法但是当我尝试这个时,我得到了一个HTTP Error 403.14 - Forbidden的屏幕。

发生了什么事?

2 个答案:

答案 0 :(得分:1)

导致public class MusicManager extends BaseAdapter { Context context; List<Music> list; LayoutInflater layoutInflater; public MusicManager(Context context, List<Music> list) { this.context = context; this.list = list; } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return position; } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View view, ViewGroup parent) { try{ layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); ViewHolder viewHolder = new ViewHolder(); if (view == null){ view = layoutInflater.inflate(R.layout.list_music,null); viewHolder.name = (TextView)view.findViewById(R.id.musicName); viewHolder.artist = (TextView)view.findViewById(R.id.musicArtist); viewHolder.image = (CircleImageView) view.findViewById(R.id.musicImage); viewHolder.imagePlaying = (CircleImageView) view.findViewById(R.id.musicImagePlaying); }else viewHolder = (ViewHolder) view.getTag(); if (list.size() > 0){ Music music = list.get(position); viewHolder.name.setText(music.getName()); viewHolder.artist.setText(music.getArtist()); InputStream inputStream = context.getAssets().open(music.getImagePath()); Drawable drawable = Drawable.createFromStream(inputStream,null); viewHolder.image.setImageDrawable(drawable); Log.i("Tag", "getView: "+music.isPlaying()); if (music.isPlaying()){ viewHolder.imagePlaying.setVisibility(View.VISIBLE); } else viewHolder.imagePlaying.setVisibility(View.GONE); } }catch (Exception e){ // Log.i("Tag", "getView: "+e.toString()); } return view; } private class ViewHolder{ TextView name; TextView artist; CircleImageView image; CircleImageView imagePlaying; } } 错误的最可能原因是您的应用中还有一个名为HTTP Error 403.14 - Forbidden的文件夹,因此它会尝试导航到您的文件夹,而不是您的控制器方法。

如果是这样,请将该文件夹重命名为除其中一个控制器名称以外的任何文件夹。

答案 1 :(得分:0)

  

但是我在ReportsController.Index方法中添加了一个断点   不停。

由于它部署在IIS中,仅设置断点是不够的,您必须将w3wp工作进程附加到调试器才能进行调试。

如何将外部进程附加到VS调试器?

有关详细信息,请参阅MSDN。