我有一个用加密哈希加密密码的类.
但是如果我想将null传递给类,我会收到以下错误: Cannot implicitly convert type string to byte[]
这是类代码:
public class MyHash
{
public static string ComputeHash(string plainText,
string hashAlgorithm, byte[] saltBytes)
{
Hash Code
}
}
Run Code Online (Sandbox Code Playgroud)
当我使用该类时,我得到错误:"无法将类型字符串隐式转换为byte []"
//Encrypt Password
byte[] NoHash = null;
byte[] encds = MyHash.ComputeHash(Password, "SHA256", NoHash);
Run Code Online (Sandbox Code Playgroud) 无法将lambda表达式转换为类型'bool',因为它不是委托类型
在if语句中比较2个整数时"if(UserLevelID => dbMinimunlevelID)"
如何将包含计数的变量与另一个整数进行比较?
//Check if user has enough credits to create ClassCharacter
public bool CheckMinimunCreditforClassCharacter(Guid UserID, int ClassCharacterID, int Levelid)
{
bool Results = true;
//Check Character Creation Rules
int dbMinimunlevelID = 0;
bool AdditionalCharactersRequired = false;
int AdditionalCharactersPoints = 0;
var query = (from o in db.ClassCharacters
where o.ClassCharacterID == ClassCharacterID
select o);
foreach (var v in query)
{
dbMinimunlevelID = v.MinimumPoints;
AdditionalCharactersRequired = v.AdditionalCharactersRequired;
AdditionalCharactersPoints = v.AdditionalCharactersPoints;
}
if (dbMinimunlevelID > 0)
{
//Check User existing …Run Code Online (Sandbox Code Playgroud) 我试图为用户选择MAX LevelId值,然后将该值赋给变量.
在纯SQL中,等效的是:
SELECT MAX(LevelID) AS MaxLevel
FROM Character
WHERE (UserId = 'John')
//Check User existing Characters max level per user
Run Code Online (Sandbox Code Playgroud)
int UserLevelID = 0;
var userQuery = (from o in db.Characters
where o.UserId == UserID
select o);
Run Code Online (Sandbox Code Playgroud)
UserLevelID = userQuery.Max(LevelID);
这就是问题所在.我不知道如何提取levelID的最大值
我的MVC 3应用程序需要创建新用户.
我想在视图中为ApplicationId文本框硬编码ApplicationId.
有谁知道如何做到这一点?
create方法不会获取任何数据:
public ActionResult Create()
{
return View();
}
<div class="editor-label">
@Html.LabelFor(model => model.ApplicationId)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.ApplicationId)
@Html.ValidationMessageFor(model => model.ApplicationId)
</div>
Run Code Online (Sandbox Code Playgroud)
更新
有一个选择.使用隐藏字段.
@Html.Hidden("ApplicationId", "ep006964-83a8-4f40-a569-d2d3296f005b")
Run Code Online (Sandbox Code Playgroud) 我将以下函数从vb.net转换为c#,但我无法弄清楚这一点.
错误4当前上下文中不存在名称"字符串"
public string GetBetween(string StringText)
{
string functionReturnValue = null;
string TMP = null;
string FromS = null;
string ToS = null;
FromS = "<Modulus>";
ToS = "</Modulus>";
TMP = Strings.Mid(StringText, Strings.InStr(StringText, FromS) + Strings.Len(FromS), Strings.Len(StringText));
TMP = Strings.Left(TMP, Strings.InStr(TMP, ToS) - 1);
functionReturnValue = TMP;
return functionReturnValue;
}
Run Code Online (Sandbox Code Playgroud) 我需要检查重复项,然后在我的控制器内的创建和编辑方法中保存到数据库.然后我需要显示重复的错误消息而不是一般的错误消息.
我对副本的定义是:userid + Code1ID + Code2ID + Code3ID + Code4ID.
问题:如果上述值组合已经存在,如何检查重复项?
表名
Character:
CharacterID int
UserID int
Code1ID int
Code2ID int
Code3ID int
Code4ID int
Name Varchar(40)
Run Code Online (Sandbox Code Playgroud)
我的主键由UserID + Code1ID + Code2ID + Code3ID + Code4ID组成.这可以保证不会在数据库中输入重复项.但是我返回的错误消息是一般错误消息.
我需要先检查重复项,然后根据重复项返回警告消息或错误消息.
这是控制器内部的编辑方法
//
// GET: /Character/Edit/5
public ActionResult Edit(int id)
{
Character character = db.Characters.Find(id);
PopulateUserIDDropDownList(character.UserID);
PopulateCode1IDDropDownList(character.Code1ID);
PopulateCode2IDDropDownList(character.Code2ID);
PopulateCode3IDDropDownList(character.Code3ID);
PopulateCode4IDDropDownList(character.Code4ID);
return View(character);
}
//
// POST: /Character/Edit/5
[HttpPost]
public ActionResult Edit(Character character)
{
try
{
if (ModelState.IsValid)
{
db.Entry(character).State = EntityState.Modified;
db.SaveChanges();
return RedirectToAction("Index"); …Run Code Online (Sandbox Code Playgroud)