0

大家好,我正在使用 mvc4 创建一个登录页面,其中登录凭据是从数据库中获取的。在数据库中,相关表包含 3 列,即:useridpasswordpartnerid。当用户输入他的凭据并单击提交按钮时,如果登录成功,他将被带到一个地址如下的页面:

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();
        }
    }

verify方法与数据库验证登录凭据是否正确,并返回字符串值“result”为真或假

4

3 回答 3

2

如果我对您的理解正确,您想提交一个表单,引导用户

Home?result1=true?partnerid='somevalue'

我将其解释为使用 null 操作(默认为 Index)并始终传递 result1=true 和来自 ViewData 的 partnerid

    @using(Html.BeginForm(null, "Home", FormMethod.Get, 
new { result1=true, partnerid='@(ViewData["somevalue"])' })) //for query string

警告:正如 Karthik 所指出的,此代码未经测试。更能证明这一点:

于 2013-02-08T06:39:14.557 回答
0

创建一个隐藏的输入来保存你的值,如下所示:

<input type="hidden" value="XXX" name="refNameHere" />
于 2013-02-08T06:11:37.933 回答
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 的字符串参数,并且一切都应该工作

于 2013-02-08T06:23:21.343 回答