Как можно передавать данные с помощью Razor в веб-приложение F # MVC5.Прохождение данных от Razor Form Post к контроллеру F #
Например, в представлении ниже, когда PostEmail форма размещения как можно передать по значению NEWEMAIL ввода, а также некоторые поля из ViewData?
И для DeleteEmail формы, как я могу получить выбранное значение параметра из писем выбрать?
Мой Вид: (Settings.cshtml)
<div style="width: 100%;">
<h2 id="title" style="margin: 0 auto;">@ViewBag.PageTitle</h2> <br> <br>
<div style="width: 60%; margin: 0 auto;">
<div style="float: left; clear: none; width: 45%;">
<span>EMAILS</span> <br>
@using (Html.BeginForm("DeleteEmail", "QualityScore", FormMethod.Post))
{
<select id="emails" size="10" style="width: 100%; max-width: 100%">
@foreach (string email in ViewBag.EmailList)
{
<option value="@email">@email</option>
}
</select>
<input type="submit" id=" email_delete" value="Delete" />
}
@using (Html.BeginForm("PostEmail", "QualityScore", FormMethod.Post))
{
<input id="newEmail" />
<input type="submit" id="email_create" value="Create" />
}
</div>
</div>
</div>
Мой контроллер: (QualityScoreController.fs)
type QualityScoreController(queries : DataQueries) =
inherit Controller()
new() = new QualityScoreController(DataQueries())
member this.Settings(token) =
let db = DataConnection.GetDataContext()
let user = queries.FindUserByToken(token, db)
this.ViewData.Add("PageTitle", "Your QualityScore Report Settings")
this.ViewData.Add("EmailList", queries.FindUsersReportEmails(user.Id, db))
this.ViewData.Add("KeywordList", queries.FindUsersReportBrands(user.Id, db))
this.ViewData.Add("UserID", user.Id)
this.View()
member this.PostEmail() =
... //need to use information sent from the form
member this.DeleteEmail() =
... //need to use information sent from the form
МОЕ РЕШЕНИЕ
Мой вид: (Settings.cshtml)
<div style="width: 100%;">
<h2 id="title" style="margin: 0 auto;">@ViewBag.PageTitle</h2> <br> <br>
<div style="width: 60%; margin: 0 auto;">
<div style="float: left; clear: none; width: 45%;">
<span>EMAILS</span> <br>
@using (Html.BeginForm("DeleteEmail", "QualityScore", FormMethod.Post))
{
<select name="emails" size="10" style="width: 100%; max-width: 100%">
@foreach (string email in ViewBag.EmailList)
{
<option value="@email">@email</option>
}
</select>
<input type="submit" id=" email_delete" value="Delete" />
<input name="userid" none value="@ViewBag.UserID" />
}
@using (Html.BeginForm("PostEmail", "QualityScore", FormMethod.Post))
{
<input name="newEmail" />
<input type="submit" id="email_create" value="Create" />
<input name="userid" none value="@ViewBag.UserID" />
}
</div>
</div>
</div>
Мой контроллер: (QualityScoreController.fs)
type QualityScoreController(queries : DataQueries) =
inherit Controller()
new() = new QualityScoreController(DataQueries())
member this.Settings(token) =
let db = DataConnection.GetDataContext()
let user = queries.FindUserByToken(token, db)
this.ViewData.Add("PageTitle", "Your QualityScore Report Settings")
this.ViewData.Add("EmailList", queries.FindUsersReportEmails(user.Id, db))
this.ViewData.Add("KeywordList", queries.FindUsersReportBrands(user.Id, db))
this.ViewData.Add("UserID", user.Id)
this.View()
member this.PostEmail(newEmail: string, userid : int) =
...
member this.DeleteEmail(emails : string, userid : int) =
...
Не будет работать для меня , http://i.imgur.com/oAbNIxL.png – Swidtter
Это было бы потому, что вы указали 'id' для своих элементов формы вместо' name'. –
Удивительная благодарность, которая очистила его. Теперь, что можно сделать с элементами ViewBag? – Swidtter