我有这样的链接:
<a href='Member/MemberHome/Profile/Id'><span>Profile</span></a>
Run Code Online (Sandbox Code Playgroud)
当我点击它时,它会调用这个部分页面:
@{
switch ((string)ViewBag.Details)
{
case "Profile":
{
@Html.Partial("_Profile"); break;
}
}
}
Run Code Online (Sandbox Code Playgroud)
部分页面_Profile包含:
Html.Action("Action", "Controller", model.Paramter)
Run Code Online (Sandbox Code Playgroud)
例:
@Html.Action("MemberProfile", "Member", new { id=1 }) // id is always changing
Run Code Online (Sandbox Code Playgroud)
我怀疑的是我如何将这个"Id"传递给model.parameter部分?
我的控制器是:
public ActionResult MemberHome(string id)
{
ViewBag.Details = id;
return View();
}
public ActionResult MemberProfile(int id = 0)
{
MemberData md = new Member().GetMemberProfile(id);
return PartialView("_ProfilePage",md);
}
Run Code Online (Sandbox Code Playgroud) 嗨我在MVC4中使用C#将一些值插入到sql表中.实际上我想插入值并返回最后插入记录的"ID".我使用以下代码.
public class MemberBasicData
{
public int Id { get; set; }
public string Mem_NA { get; set; }
public string Mem_Occ { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
插入时,ID在数据库中自动递增.
public int CreateNewMember(string Mem_NA, string Mem_Occ )
{
using (SqlConnection con=new SqlConnection(Config.ConnectionString))
{
using(SqlCommand cmd=new SqlCommand("INSERT INTO Mem_Basic(Mem_Na,Mem_Occ) VALUES(@na,@occ)",con))
{
cmd.Parameters.AddWithValue("@na", Mem_NA);
cmd.Parameters.AddWithValue("@occ", Mem_Occ);
con.Open();
int modified = cmd.ExecuteNonQuery();
if (con.State == System.Data.ConnectionState.Open) con.Close();
return modified;
}
}
}
Run Code Online (Sandbox Code Playgroud)
我知道ExecuteNonQuery表示影响行的数字.而不是我使用
int modified = (int)cmd.ExecuteScalar();
Run Code Online (Sandbox Code Playgroud)
但不行.请帮我解决这个问题.是否有任何代码,如cmd.ExecuteInsertAndGetID()(不使用我的代码).
我的ASP.NET MVC 4项目,我的Global.asax.cs页面显示错误
WebApiConfig.Register(GlobalConfiguration.Configuration);
Run Code Online (Sandbox Code Playgroud)
"GlobalConfiguration"这个名称在当前上下文中不存在
我做了很多控制器和视图以及所有......我如何解决这个问题并恢复我的项目?
这是我的上下文代码的其余部分
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Routing;
namespace .....
{
// Note: For instructions on enabling IIS6 or IIS7 classic mode,
// visit http://go.microsoft.com/?LinkId=9394801
public class MvcApplication : System.Web.HttpApplication
{
protected void Application_Start()
{
AreaRegistration.RegisterAllAreas();
WebApiConfig.Register(GlobalConfiguration.Configuration);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我希望使用C#获取按创建日期排序的文件夹中的文件列表.
我使用以下代码:
if(Directory.Exists(folderpath))
{
DirectoryInfo dir=new DirectoryInfo (folderpath);
FileInfo[] files = dir.GetFiles().OrderBy(p=>p.CreationTime).ToArray();
foreach (FileInfo file in files)
{
......
}
}
Run Code Online (Sandbox Code Playgroud)
这将给出创建时间的升序.我实际上想要在我的数组的第一个位置(降序)获取最近创建的文件.
我是EF的新手,我想知道用SQL Server数据库创建EF的最佳方法是什么.之后我想测试CRUD操作.EF是以TDD方式实现的,我对这些存储库模式,模拟上下文,假模式等感到困惑.
EF中的CRUD操作,会测试所有内容吗?(DbContext,SaveChanges()......需要测试吗?)
那么任何想法如何使用基于Entity Framework的组件进行单元测试?(我在Visual Studio 2012,ASP.NET MVC4中检查所有这些)
c# unit-testing entity-framework repository-pattern asp.net-mvc-4
我们如何从Sql Data Reader读取整数空值
SqlDataReader reader = cmd.ExecuteReader();
if (reader.Read() == true)
{
mb.Id = (int)reader["Id"];
mb.Mem_NA = (string)reader["Mem_NA"];
mb.Mem_ResAdd4 = reader["Mem_ResAdd4"] == System.DBNull.Value ? null : (string)reader["Mem_ResAdd4"];
//
mb.Mem_ResPin = reader["Mem_ResPin"] as int? ?? default(int);
// shows the error "Object cannot be cast from DBNull to other types."
}
Run Code Online (Sandbox Code Playgroud)
mb.Mem_ResPin无法从读者那里读到
CREATE TABLE [dbo].[Mem_Basic] (
[Id] INT IDENTITY (1, 1) NOT NULL,
[Mem_NA] VARCHAR (100) NOT NULL,
[Mem_ResAdd4] VARCHAR (100) NULL,
[Mem_ResPin] INT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
Run Code Online (Sandbox Code Playgroud) 我正在测试Visual Studio 2012中的create类
我的控制器类是:
public ActionResult Create()
{
return View();
}
//
// POST: /Member/Create
[HttpPost]
public ActionResult Create(Member member)
{
if (ModelState.IsValid)
{
db.Members.Add(member);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(member);
}
Run Code Online (Sandbox Code Playgroud)
测试类是:
[TestClass]
public class MemberTest
{
[TestMethod]
public void Create(Member mem)
{
mem.MemID = 123;
mem.MemName = "sruthy";
/// dont know what is writing.
}
}
Run Code Online (Sandbox Code Playgroud)
SampleDataContext.cs
public class SampleDataContext:DbContext
{
public DbSet<Member> Members { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
}
}
Run Code Online (Sandbox Code Playgroud)
我被困在测试用例中请帮助我.
我有这样的事情:
public ActionResult ImageReplace(int imgid,HttpPostedFileBase file)
{
string keyword = imgid.ToString();
.......
}
Run Code Online (Sandbox Code Playgroud)
在我的.cshtml中:
@model Models.MemberData
@using (Html.BeginForm("ImageReplace", "Member", FormMethod.Post,
new { imgid = @Model.Id, enctype = "multipart/form-data" }))
{
<input type="file" name="file" id="file" value="Choose Photo" />
<input type="submit" name="submit" value="Submit" />
}
Run Code Online (Sandbox Code Playgroud)
这里imgid的值没有传递给控制器动作.显示错误,参数字典包含参数'imgid'的非可空类型'System.Int32'的空条目,用于方法'System.Web.Mvc.ActionResult ImageReplace
嗨,我想填写我的视图页面中的下拉列表,我的代码是
public class MemberBasicData
{
public int Id { get; set; }
public string Mem_NA { get; set; }
public string Mem_Occ { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
//控制器
public ActionResult Register()
{
var users = new Member().GetAllMembers();
ViewBag.Users = users;
return View();
}
Run Code Online (Sandbox Code Playgroud)
//视图
@model IEnumerable<....Members.Models.MemberBasicData>
@Html.DropDownListFor(model => model.Mem_Na, (SelectList)ViewBag.Users, "--Select Users--")
Run Code Online (Sandbox Code Playgroud)
我想将Mem_NA添加到dropdownlist,Viewbag包含所有用户详细信息.问题出现在View页面中.model.Mem_Na中显示错误.请帮我解决这个问题.
我在 Windows 窗体上有文本框,我只想在此文本框中插入数字。为此我使用以下 c# 代码
private void ChildAge_TextChanged(object sender, EventArgs e)
{
int i;
if (!int.TryParse(ChildAge.Text, out i))
{
MessageBox.Show("Plaese enter a valid Age");
}
}
Run Code Online (Sandbox Code Playgroud)
它正在工作,但问题是,在显示消息后,当我退格时,内容和文本框变为空,在这种情况下,此消息框也会再次显示。
c# ×9
asp.net-mvc ×3
sql ×2
unit-testing ×2
asp.net ×1
file ×1
html5 ×1
razor ×1
sql-server ×1
winforms ×1