繁体   English   中英

将字符串值作为参数传递给Url.action

[英]Pass a string value as parameter in Url.action

我正在使用asp.net mvc 4EF6开发一个网站。 我想在Url.action链接Url.action字符串值作为参数Url.action 但是,每当我单击链接时,都会出现此错误:

此操作的参数类型'Edm.Int32'和'Edm.String'不兼容。 在WHERE谓词附近,第1行,第76列。

这是创建它的代码:

控制者

public ActionResult Edit(string EditId)
{
    if (Session["username"] != null)
    {
        UserInfo uinfo = db.UserInfoes.Find(EditId);
        return View(uinfo);
    }
    else
    {
        return RedirectToAction("HomeIndex");
    }
}

视图

<a class="btn btn-info" 
 href="@Url.Action("Edit", "Home", new { EditId = item.regno.ToString() })"><b>Edit</b></a>

如何使用字符串值作为参数?

public ActionResult Edit(string EditId)
    {
        if (Session["username"] != null)
        {
            int id;
            //Check try to parse the string into an int if it fails it will return false if it was parsed it will return true
            bool result = Int32.TryParse(EditId, out id);
            if (result)
            {                    
                 //I wouldn't use find unless you're 100% sure that record will always be there.
                 //This will return null if it cannot find your userinfo with that ID
                 UserInfo uinfo = db.UserInfoes.FirstOrDefault(x=>x.ID == id);      
                 //Check for null userInfo    
            return View(uinfo);
        }
        else
        {
            return RedirectToAction("HomeIndex");
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM