Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何通过mvc4中的提交按钮传递自定义参数_Javascript_Asp.net_Asp.net Mvc_Asp.net Mvc 3_Asp.net Mvc 4 - Fatal编程技术网

Javascript 如何通过mvc4中的提交按钮传递自定义参数

Javascript 如何通过mvc4中的提交按钮传递自定义参数,javascript,asp.net,asp.net-mvc,asp.net-mvc-3,asp.net-mvc-4,Javascript,Asp.net,Asp.net Mvc,Asp.net Mvc 3,Asp.net Mvc 4,大家好,我正在使用mvc4创建一个登录页面,其中登录凭据从数据库中获取。在数据库中,相关表格包含3列,即:用户ID、密码和合作伙伴ID。当用户输入其凭据并单击“提交”按钮时,如果登录成功,他将进入一个地址如下的页面: http://localhost:58361/Home?result1=true 这是我的提交按钮代码: <input type="submit" value="Login" class="login_button" onclick="return validateLogi

大家好,我正在使用mvc4创建一个登录页面,其中登录凭据从数据库中获取。在数据库中,相关表格包含3列,即:用户ID密码合作伙伴ID。当用户输入其凭据并单击“提交”按钮时,如果登录成功,他将进入一个地址如下的页面:

http://localhost:58361/Home?result1=true
这是我的提交按钮代码:

<input type="submit" value="Login" class="login_button" onclick="return validateLoginPage()" />
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”返回为true或false

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

http://localhost:58361/Home?result1=true?partnerid='somevalue'
<input type="hidden" value="XXX" name="refNameHere" />

假设我正确理解了您的问题,并且主索引的控制器方法如下所示

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


然后,您必须在HomeController上添加一个索引操作,以获取名为result1和partnerid的字符串参数,并且一切都应该正常运行

如果我理解正确,您希望提交一个表单,指导用户

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所指出的,此代码未经测试。更重要的是要说明这一点:

您能否发布执行验证和构建链接的操作结果要澄清的是,您希望用户在提交其凭据并经过身份验证后最终到达所述URL?获取partnerid的地点/时间是在身份验证之后?@DaveA,如果数据敏感,最好使用POST而不是get。@Murali,我同意一般原则和最佳实践。在这种情况下,我试图毫无偏见地回应OP。这意味着查询字符串(Get)。但我同意你的观点。+1,我喜欢这种使用表单发布数据的方式。以前我有一个隐藏变量:(@Murali,我相信不同的方法可以满足不同的需求;)您的方法还减少了一个额外的DOM元素&响应大小:)我明白您的意图。我觉得可以改进以更好地满足OP问题。如果你想改进它,我很乐意投票支持。错过了这个。大的改进,不确定它是否完全符合OP,但我的也一样。继续努力@pmacnaughtonI感觉标题可能有点误导,如果用户在验证后最终到达所述URL,那么实际请求的是什么,并且partnerid也只能在验证后获得。我添加了我忘记的name属性。还要确保表单方法设置为GET。如果我没弄错你的问题,那就行了。
    @using(Html.BeginForm(null, "Home", FormMethod.Get, 
new { result1=true, partnerid='@(ViewData["somevalue"])' })) //for query string