这是针对一个学校项目,我并不完全理解我应该做什么,所以我会解释老师告诉我的内容以及到目前为止我做了什么,希望你们能帮忙。 为了检查程序是否成功,教师希望手动将数字添加到页面的URL中。 我需要取这个数字,从url中提取它,然后将它植入一个方法中,这样它就会解密一个具有相同ID号的消息(我不知道他打算怎么做或激活所述方法)。 这是我写的: 在DataModel中:
public static void GetMessage (int? MesNum, out string MesSuc)
{
SqlConnection cnctn = new SqlConnection(cnctnstrng);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = cnctn;
cmd.CommandText = "GetMessage";
cmd.Parameters.Add("@LineNum", SqlDbType.Int);
SqlDataReader rd;
try
{
cnctn.Open();
cmd.Parameters["@LineNum"].Value = MesNum;
rd = cmd.ExecuteReader();
byte[] Message = (byte[])rd["MessageText"];
if (Message != null)
{
MesSuc = chat.Models.DomainModels.Security.DecryptStringFromBytes(Message);
}
else
{
MesSuc = "Unable to decrypt Message";
}
}
catch
{
MesSuc = "Unable to decrypt Message";
}
finally
{
cnctn.Close();
}
}
在控制器中:
public ActionResult singlmsgdecrptn()
{
string MesSuc;
chat.Models.DataModels.userdbmanip.GetMessage(*?*, out MesSuc);
return View(MesSuc);
}
?是该号码的来源。 在视图中:
@{
Layout = null;
}
<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>singlmsgdecrptn</title>
</head>
<body>
<div>
@ViewBag.MesSuc
</div>
</body>
</html>
答案 0 :(得分:0)
MVC的默认路由选择和ID可选参数。检查App_Start文件夹中的RouteConfig.cs。
因此,您应该只能将其作为参数添加到控制器操作结果中。
public ActionResult singlmsgdecrptn(int? id)
{
string MesSuc;
chat.Models.DataModels.userdbmanip.GetMessage(id, out MesSuc);
return View(MesSuc);
}
另外,不知道为什么你在这里使用可以为空的int,但我也跟着。希望这有帮助,祝你好运。