Asp.net mvc 更新我的数据库-失败
更新:我调试了几次,似乎“UpdateUserDetails”函数还可以,但我认为问题出在这一行(在UpdateUser函数中): 我认为故障在“过滤器”内Asp.net mvc 更新我的数据库-失败,asp.net-mvc,mongodb,Asp.net Mvc,Mongodb,更新:我调试了几次,似乎“UpdateUserDetails”函数还可以,但我认为问题出在这一行(在UpdateUser函数中): 我认为故障在“过滤器”内 提前感谢“我一直失败”是什么意思?你出错了?或者它永远不会更新?你做了什么来调查这件事?不清楚你想说什么,请澄清细节无误。它不会用新的详细信息更新用户。我尝试了各种方法来找出问题所在。。我认为问题出在“过滤器”中,但我不知道如何解决。您是否设置了断点以在代码运行时评估变量的内容,并检查所需的代码是否实际以预期的变量值执行?如果是这样,而你仍
提前感谢“我一直失败”是什么意思?你出错了?或者它永远不会更新?你做了什么来调查这件事?不清楚你想说什么,请澄清细节无误。它不会用新的详细信息更新用户。我尝试了各种方法来找出问题所在。。我认为问题出在“过滤器”中,但我不知道如何解决。您是否设置了断点以在代码运行时评估变量的内容,并检查所需的代码是否实际以预期的变量值执行?如果是这样,而你仍然不确定该怎么办,请编辑问题以确认你发现了什么,并提供样本数据。我更新了一些资料,我希望这会让mroe感觉良好,因此你认为你找到了问题所在……因此,正如我所问的,请验证数据。运行代码时,
input.ID
的值是否设置为预期值?你什么都没提。这是要检查的第一件事。
var filter = Builders<User>.Filter.Eq("ID", input.ID);
[HttpPost]
public ActionResult UpdateUser(User input)
{
// var a = input.ID;
var filter = Builders<User>.Filter.Eq("ID", input.ID);
var update = Builders<User>.Update
.Set("FirstName", input.FirstName)
.Set("LastName", input.LastName)
.Set("Phone", input.Phone)
.Set("Email", input.Email)
.Set("Password", input.Password)
.Set("Permission", input.Permission);
DBManager.UpdateUserDetails(filter, update);
ViewBag.Update = "Update successful";
return RedirectToAction("UsersList");
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using MongoDB.Driver;
using MongoDB.Bson;
using MongoDB.Driver.Linq;
using SurffingSite.Models;
namespace SurffingSite.DB
{
public class DBManager
{
static MongoClient client;
static IMongoDatabase DB;
// Constractor
static DBManager()
{
client = new MongoClient("mongodb://localhost:27017");
DB = client.GetDatabase("HELLOSTACKOVERFLOW");
}
// Method to get list of all users//
public static IMongoCollection<User> GetUsersCollection()
{
var collection = DB.GetCollection<User>("User");
return collection;
}
internal static object GetCollection<T>(string v)
{
throw new NotImplementedException();
}
//User Method //
// Method for adding new user
public static void AddNewUser(User user)
{
var collection = DB.GetCollection<User>("User");
collection.InsertOne(user);
}
//Get user email.
public static User GetUserEmail(User input)
{
User email = DBManager.GetUsersCollection().Find(user => user.Email == input.Email).FirstOrDefault();
return email;
}
//Get user passsword.
public static User GetUserPassword(User input)
{
User password = DBManager.GetUsersCollection().Find(user => user.Password == input.Password).FirstOrDefault();
return password;
}
//User login verification
public static User UserVerification(User input)
{
// try get user by email
// if user exist than check if the password is correct if not than return null
User UseVar = DBManager.GetUserEmail(input);
if (UseVar != null && UseVar.Password == input.Password)
{
return UseVar;
}
return null;
}
//Update User details
public static void UpdateUserDetails(FilterDefinition<User> filter, UpdateDefinition<User> update)
{
var collection = DB.GetCollection<User>("User");
collection.UpdateOne(filter, update);
}
//Products Method's//
// Adding product into DB
public static void AddProduct(Products product)
{
var collection = DB.GetCollection<Products>("Products");
collection.InsertOne(product);
}
public static IMongoCollection<Products> GetProductsCollection()
{
var collection = DB.GetCollection<Products>("Products");
return collection;
}
// Find product in DB by ID
public static Products FindProductsById(Products input)
{
Products searchedProd = DB.GetCollection<Products>("Products").Find(product => product.Id == input.Id).FirstOrDefault();
return searchedProd;
}
//Update product
public static void UpdateDetails(FilterDefinition<Products> filter, UpdateDefinition<Products> update)
{
var collection = DB.GetCollection<Products>("Products");
collection.UpdateOne(filter, update);
}
//Orders//
// This method will return all exist orders
public static IMongoCollection<Orders> GetOrdersCollection()
{
var collection = DB.GetCollection<Orders>("Orders");
return collection;
}
//Place an new order
public static void AddOrder(Orders order)
{
var collection = DB.GetCollection<Orders>("Orders");
collection.InsertOne(order);
}
// Search for all user orders
public static List<Orders> FindUserOrders(User user)
{
List<Orders> searchedorders = DB.GetCollection<Orders>("Orders")
.Find(order => order.User.ID == user.ID).ToList<Orders>();
return searchedorders;
}
}
}
using MongoDB.Bson;
using MongoDB.Bson.Serialization.Attributes;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Web;
namespace SurffingSite.Models
{
public class User
{
[Required]
[BsonId]
public ObjectId ID { get; set; }
[BsonElement("FirstName")]
public String FirstName { get; set; }
[BsonElement("LastName")]
public String LastName { get; set; }
[BsonElement("Phone")]
public String Phone { get; set; }
[BsonElement("Email")]
public String Email { get; set; }
[BsonElement("Password")]
public String Password { get; set; }
[BsonElement("Permission")]
public string Permission { get; set; }
}
}