我正在尝试实施一个包含主题的简单博客
模型/ Topic.cs
public class Topic
{
public int ID {get; set;}
[StringLength(50)]
[RequiredAttribute(ErrorMessage = "*")]
public string Title {get; set;}
[StringLength(1024)]
[RequiredAttribute(ErrorMessage = "*")]
public string Body { get; set; }
public int CommentsCount { get; set; }
public DateTime TimeLastUpdated { get; set; }
public int AuthorID { get; set; }
public virtual List<Comment> commentsList { get; set; }
}
主页看起来像一个主题列表。
控制器/ HomeController.cs
public class HomeController : Controller
private ContentStorage db = new ContentStorage();
public ViewResult Index()
{
// Topics = DbSet<Topic> Topics { get; set; }
return View(db.Topics.ToList());
}
[HttpPost]
public void LogIn(string login, string password)
{
int i;
i = 10;
}
}
主页的视图非常简单。
查看/主页/索引
@model IEnumerable<MvcSimpleBlog.Models.Topic>
...
<table width="95%" height="86" border="0">
<tr>
<td width="45%" valign = "bottom" >Login:</td>
<td width="45%" valign = "bottom" >Password:</td>
<td width="10%"></td>
</tr>
<tr>
<td width="45%"><p> <input type="text" name="login" /> </p></td>
<td width="45%"><p><input type="password" name="password" /></p></td>
<td width="10%" align = "left">
@using (Html.BeginForm("LogIn", "Home"))
{
<input type = "submit" value = "Enter" />
}
</td>
</tr>
<tr>
<td width="45%" valign = "top" >@Html.ActionLink("Register", "Register", "Account")</td>
</tr>
</table>
我如何将View中编辑框的值传递给HomeController方法? “LogIn”方法应该从视图接收数据,调用“帐户”控制器,将用户的登录名和密码传递给它。 “帐户”控制器会对此用户进行验证,并将浏览器重定向到包含主题的主页。
但是我无法访问视图中的登录名和密码编辑框......我真的不知道该怎么做,而且我的模型是正确的
答案 0 :(得分:0)
如果您希望在提交表单时将其值发布到服务器,那么这些输入字段应位于Html.BeginForm
内。目前,您的表单中只有一个提交按钮。所以:
@using (Html.BeginForm("LogIn", "Home"))
{
<table width="95%" height="86" border="0">
<tr>
<td width="45%" valign="bottom">Login:</td>
<td width="45%" valign="bottom">Password:</td>
<td width="10%"></td>
</tr>
<tr>
<td width="45%">
<p>
<input type="text" name="login" />
</p>
</td>
<td width="45%">
<p>
<input type="password" name="password" />
</p>
</td>
<td width="10%" align="left">
<input type="submit" value="Enter" />
</td>
</tr>
<tr>
<td width="45%" valign="top">
@Html.ActionLink("Register", "Register", "Account")
</td>
</tr>
</table>
}
现在,您的LogIn
控制器操作可以接收2个值作为操作参数,如下所示:
[HttpPost]
public ActionResult LogIn(string login, string password)
{
... perform authentication
}