我正在使用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
的屏幕。
发生了什么事?
答案 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。