2

我正在尝试实现一个简短的生物表单,每个用户都可以编辑和更新其生物。基于这样一个事实,即如果用户之前填写过表单,之前的文本或什么都没有,将作为初始文本返回到 Textarea 中。

这是我从键盘获取用户名、在 dbase 中搜索一个值并尝试在用户提交表单之前将其输出到 textarea 的块。

如果您愿意,可以使用一种个人资料记忆。

@{
Validation.RequireField("currentuser");
Validation.Add("bioprint", Validator.StringLength(3000, 0, "Your bio should not exceed 3000 characters"));

var init = "";
var currentuser = Request["currentuser"];
var db = Database.Open("ResearchA");
var cbio = db.QuerySingle("SELECT bios FROM usernamesb WHERE username = @0",currentuser); //get current bio string

if (cbio == null) {init = cbio;}        //check if string is NULL
else {init = "Tell us about you...";}

if(IsPost && Validation.IsValid())  {

    var userbio = @Request["Bio"];

    var insertbio = "UPDATE usernamesb SET bios = @0 WHERE username = @1";
    db.Execute(insertbio, userbio, currentuser);  //Update database with a new entry.

 }

}

这是我在 HTML 块中设置控件的方式:

<input type="text" name="currentuser" id="currentuser" value="@Request.Form["currentuser"]"/>

<textarea name="Bio" rows="10" cols="50" placeholder ="@cbio"></textarea> 

但是我没有得到已经存在的字符串输出。

非常感谢小伙伴们的关注!!

4

2 回答 2

1

您的 cbio 变量当前正在加载数据库中的单行。您需要从该行中获取其中一个字段。有两种方法可以将数据库查询更改为:

var cbio = db.QueryValue("SELECT bios FROM usernamesb ...

这将只返回字符串。或者让您的数据库查询保持不变,并通过更改 html 部分来更改从行访问字段的方式:

<textarea name="Bio" rows="10" cols="50">@cbio.bios</textarea>
于 2013-02-18T13:09:15.890 回答
0

如果要在 a 中设置文本,<textarea>请将要显示的值放在开始标签和结束标签之间:

<textarea name="Bio" rows="10" cols="50">@cbio</textarea>
于 2013-02-18T07:47:36.297 回答