一个简单的MVC实例及故障排除

时间:2023-03-09 00:13:18
一个简单的MVC实例及故障排除

Controller:

  public ActionResult Index()
{
string setting = "ApplicationServices";
var connString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings[setting];
SqlConnection conn = new SqlConnection(connString.ConnectionString);
SqlCommand cmd;
SqlDataReader datar;
string str_sql = "select * from T_category;";
conn.Open();
cmd = new SqlCommand(str_sql, conn);
datar = cmd.ExecuteReader();
List<string> list_categoery = new List<string>();
while (datar.Read())
{
list_categoery.Add(datar["category_name"].ToString());
}
conn.Close();
ViewBag.Categories = list_categoery; str_sql = "select * from T_product;";
conn.Open();
cmd = new SqlCommand(str_sql, conn);
datar = cmd.ExecuteReader();
productModel pm = new productModel();
while (datar.Read())
{
pm.product_name = datar["Product_name"].ToString();
pm.product_description = datar["Product_description"].ToString();
pm.product_image = datar["Product_image"].ToString();
pm.product_document = datar["Product_document"].ToString();
}
conn.Close();
return View(pm);
}

View:

@model MvcApplication2.Models.productModel

@{
Layout = null;
} <div id="categories">
<ul>
@foreach (var cate in (ViewBag.Categories) as IEnumerable<string>)
{
<li>@cate</li>
}
</ul>
</div> <section id="isBIM_models">
<div>
<div id="Section_one">
<div id="One_product">
<div id="product_image">
<img src="~/image/isBIM_product/@(Model.product_image).jpg"/>
</div>
<div id="product_description">
<p>简介:<br />@Model.product_description</p>
</div>
<div class="clearfix"></div>
<div id="product_source">
<a href="~/DLL/@(Model.product_name)_DLL_2015.dll">下载</a>
<input type="button" id="downloadbutton"/>
@*<a href="~/Home/download">Click to get file</a>*@ </div>
</div>
</div>
</div>
</section>

(view中只列出了绑定模型字段的部分)

Model:

 public class productModel
{
public productModel() { }
public int product_id { get; set; }
public string product_name { get; set; }
public string product_description { get; set; }
public string product_image { get; set; }
public string product_document { get; set; } }

如果运行时遇到这样的报错:Microsoft.CSharp.RuntimeBinder.RuntimeBinderException

则在Assemblyinfo.cs中添加一句:

[assembly: InternalsVisibleTo("MvcApplication2.Controllers")]