I have tried to bind together html input textBox
<input type="text" id="serviceName" value="@serviceName" />
with variable on the top of my cshtml file
var serviceName = Request.Form["serviceName"];
But when I set breakpoint on sql command where should serviceName have value it is still null.
May I know how to bind text in textBox serviceName to that variable?
Thank you for your time.
@{
Layout = "~/_SiteLayout.cshtml";
Page.Title = "Registrovaní uživatelé";
var serviceLat = Request.Form["serviceLat"];
var serviceLon = Request.Form["serviceLon"];
var serviceContact = Request.Form["serviceContact"];
var serviceDescription = Request.Form["serviceDescription"];
var serviceCrypto = Request.Form["serviceCrypto"];
var serviceLink = Request.Form["serviceLink"];
var serviceType = Request.Form["serviceType"];
var fileName = "";
var fileMime = "";
var serviceName = "";
var email = "";
var userId = Request.Form["userId"];
if (IsPost)
{
var uploadedFile = Request.Files[0]; // on this line it fails
fileName = Path.GetFileName(uploadedFile.FileName);
if (fileName != String.Empty)
{
fileMime = uploadedFile.ContentType;
var fileStream = uploadedFile.InputStream;
var fileLength = uploadedFile.ContentLength;
email = Request.Form["email"];
serviceName = Request.Form["serviceName"];
byte[] fileContent = new byte[fileLength];
fileStream.Read(fileContent, 0, fileLength);
var db1 = Database.Open("StarterSite");
var sql = "UPDATE services SET FileName=@0, FileContent=@1, MimeType=@2,"+
"IDTypeOfService=@4,IDCryptoCur=@5,GeoLong=@6,GeoLat=@7,DescriptionService=@8,LinkService=@9,TitleService=@10,ServiceContact=@11 " + "WHERE IDklient=@3; IF @@ROWCOUNT=0 INSERT INTO services " +
"(IDklient,IDTypeOfService,IDCryptoCur,GeoLong,GeoLat,DescriptionService,LinkService,TitleService,ServiceContact,FileName,FileContent,MimeType)"+
"values (@3,@4,@5,@6,@7,@8,@9,@10,@11,@0,@1,@2)";
db1.Execute(sql, fileName, fileContent, fileMime, userId,serviceType,serviceCrypto,serviceLon,serviceLat,serviceDescription,serviceLink,serviceName,email);
}
}
This is on the top of my page now html part:
<section class="email">
<form method="post">
<fieldset>
<legend>Bez registrace</legend>
<label for="email" @if(!ModelState.IsValidField("email")){<text>class="error-label"</text>}>Email address</label>
<input type="text" id="emailFast" name="emailFast" value="@email" @Validation.For("email") />
@* Write any email validation errors to the page *@
@Html.ValidationMessage("email")
<label for="email" >Název</label>
<input type="text" id="serviceName" [email protected]["serviceName"] />
<label for="email" >Zeměpisná šířka</label>
<input type="text" id="serviceLat" value="serviceLat"/>
<label for="email" >Zeměpisná délka</label>
<input type="text" id="serviceLon" value="serviceLon"/>
<label for="email" >Kategorie</label>
<input type="text" id="serviceType" value="serviceType"/>
<label for="email" >Kontakt</label>
<input type="text" id="serviceContact" value="serviceContact" />
<label for="email" >Stručný popis</label>
<input type="text" id="serviceDescription" value="serviceDescription" />
<label for="email" >Krypto měna</label>
<input type="text" id="serviceCrypto" value="serviceCrypto" />
<label for="email" >Webová stránka</label>
<input type="text" id="serviceLink" value="serviceLink" />
<label for="email" >Logo</label>
</fieldset>
@FileUpload.GetHtml(
initialNumberOfFiles: 1,
allowMoreFilesToBeAdded: false,
includeFormTag: true,
uploadText: "Upload")
@if (IsPost && fileName != String.Empty)
{
<span>Obrázek byl nahrán!</span>
}
Still when I do the debug with breakpoint value for serviceName is null I still have problems with binding it.
Edit of the correct solution by Dylan Corriveau:
<form method="post" enctype ="multipart/form-data">
This sites says that it is neccessery to use this type of encoding if you are uploading a file.