大家好我正在使用mvc4创建登录页面,其中登录凭据是从数据库中提取的。在数据库中,相关表格包含3列:用户ID ,密码和 partnerid 。当用户输入他的凭据并单击“提交”按钮时,如果登录成功,他将被带到一个地址如下的页面:
http://localhost:58361/Home?result1=true
这是我的提交按钮代码:
<input type="submit" value="Login" class="login_button" onclick="return validateLoginPage()" />
这里validateLoginPage是一个js函数,它检查是否有任何输入字段留空。
我的要求是,点击“提交”按钮,用户重定向到的页面地址将显示如下:
http://localhost:58361/Home?result1=true?partnerid='somevalue'
partnerid值取自数据库并存储在ViewData
中如何实现这一目标?提前致谢
修改
这是提交按钮的动作结果
public ActionResult Index(LoginModel model,string res)
{
LoginUser = model.Userid;
LoginPassword = model.Password;
verify(LoginUser, LoginPassword);
res = result;
if (res == "true")
{
return RedirectToAction("Index", "Home", new { result1 = result });
}
else
{
ViewData["alert"] = "The Login Credentials are Incorrect";
return View();
}
}
验证方法向数据库验证登录凭据是否正确,并将字符串值“result”返回为true或false
答案 0 :(得分:2)
如果我理解正确,您需要提交一个指导用户的表单
Home?result1=true?partnerid='somevalue'
我将其解释为使用null操作进入Home Controller(默认为Index)并始终传递result1 = true,以及来自ViewData的partnerid
@using(Html.BeginForm(null, "Home", FormMethod.Get,
new { result1=true, partnerid='@(ViewData["somevalue"])' })) //for query string
警告:正如Karthik所指出的那样,此代码未经测试。更多的是要证明这一点:
答案 1 :(得分:0)
创建一个隐藏的输入,保存您的值,如下所示:
<input type="hidden" value="XXX" name="refNameHere" />
答案 2 :(得分:0)
假设我已正确理解您的问题,并且Home Index的控制器方法看起来像这样
public ActionResult Index(int partnerid)
{
ViewBag.PartnerId = partnerid;
return View();
}
在登录方法
中执行此操作应该没问题public ActionResult Login()
{
// Authentication stuff goes here
return RedirectToAction("Index", "Home", new { partnerid = 1 });
}
由于您添加了处理登录的操作的代码,这简化了我的编辑。 您所要做的就是从数据源获取partnerid,将其放入字符串并将其包装在''然后更改
return RedirectToAction("Index", "Home", new { result1 = result });
到
return RedirectToAction("Index", "Home", new { result1 = result, partnerid = partnerId });
然后你必须在你的HomeController上添加一个Index动作来获取名为result1和partnerid的字符串参数,一切都应该工作