我目前正在开发一个基本的 ASP.NET MVC 应用程序。今天我遇到了一个奇怪的问题:
[HttpPost]
[Authorize]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Create([Bind(Include = "Url, Homepage, Language, Country, Name")]FeedModel feedModel)
{
feedModel.Id = Guid.NewGuid().ToString();
feedModel.UserId = User.Identity.GetUserId();
Debug.WriteLine(feedModel.UserId);
if (ModelState.IsValid)
{
db.Feeds.Add(feedModel);
await db.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(feedModel);
}
Run Code Online (Sandbox Code Playgroud)
显然,根据 VS 中的调试工具,由于 UserId 值为空,ModelState.IsValid 始终为 false。但是,使用 Debug.WriteLine,feedModel.UserId 可以正确显示。
该函数用于从视图接收信息,添加 Id 和 UserId 的值。
这是 feedModel 类:
public class FeedModel
{
[Key]
public string Id { get; set; }
[Required]
public string UserId { get; set; }
[Required]
public string Url { …Run Code Online (Sandbox Code Playgroud) 我今天遇到了一个很奇怪的问题:
基本上,我想使用以下行将一种类型的数组转换为另一种类型的数组:
DirectoryInfo Source = new DirectoryInfo(@"C:\Orpheus_Music");
FileInfo[] Files = Source.GetFiles("*.mp3");
List<MusicFileModel> FileList = new List<MusicFileModel>();
MusicFileModel temp = new MusicFileModel();
foreach (FileInfo file in Files)
{
temp.Name = file.Name.ToString();
temp.Pfad = file.DirectoryName.ToString();
FileList.Add(temp);
Debug.WriteLine(temp.Name + ", " + temp.Pfad);
}
Debug.WriteLine("_______________");
foreach (MusicFileModel file in FileList)
{
Debug.WriteLine(file.Name + ", " + file.Pfad);
}
Run Code Online (Sandbox Code Playgroud)
但是,这不是获取Name和Pfad值的精确副本,而是输出:
01 Rolling in the Deep.mp3, C:\Orpheus_Music
02 Rumour has it.mp3, C:\Orpheus_Music
03 Turning Tables.mp3, C:\Orpheus_Music
04 Don't you remember.mp3, C:\Orpheus_Music
05 Set Fire to …Run Code Online (Sandbox Code Playgroud)