两种形式具有相同的输入ID在asp.net mvc的 [英] two forms with same input id in asp.net mvc
问题描述
我有一个页面上的多个表单它通过隐藏的输入传递一个ID控制器。当我使用强类型的意见,这些我想我需要保持ID为每个这些是相同的。但我认为这是不好的做法它的工作原理目前。我应该如何处理呢?在Django有形式preFIX值是有一个相当于?
<一个href=\"http://stackoverflow.com/questions/1252826/avoid-duplication-of-form-input-element-id-in-django\">http://stackoverflow.com/questions/1252826/avoid-duplication-of-form-input-element-id-in-django
下面是我使用的两种形式:
&LT;形式的行动=/场/ CropImage的方法=后&GT;
&LT;输入ID =CourseIdNAME =CourseId类型=隐藏值=&LT;%= Model.CourseId%GT; /&GT;
&LT;输入ID =XNAME =X型=隐藏值=&LT;%= Model.X%GT; /&GT;
&LT;输入ID =YNAME =Y型=隐藏值=&LT;%= Model.Y%GT; /&GT;
&LT;输入ID =WNAME =W型=隐藏值=&LT;%= Model.W%GT; /&GT;
&LT;输入ID =HNAME =H型=隐藏值=&LT;%= Model.H%GT; /&GT;
&LT;输入类型=提交值=剪裁/&GT;
&LT; /表及GT; &LT;形式的行动=/场/ UploadImageENCTYPE =的multipart / form-data的方法=后&GT;
&LT;输入ID =CourseIdNAME =CourseId类型=隐藏值=&LT;%= Model.CourseId%GT; /&GT;
&LT;标签=图片&GT;选择图片:&LT; /标签&gt;&LT;输入ID =图像类型=文件名称=选择图片/&GT;
&LT;输入类型=提交值=上传/&GT;
&LT; /表及GT;
如果您有2视图模型(一个用于作物,一个用于上传),您可以preFIX他们像这样(您可以使用HTML佣工):
&LT;形式的行动=/场/ CropImage的方法=后&GT;
&LT;输入ID =Crop_CourseIdNAME =Crop.CourseId类型=隐藏值=&LT;%= Model.CourseId%GT; /&GT;
&LT;输入ID =Crop_XNAME =Crop.X类型=隐藏值=&LT;%= Model.X%GT; /&GT;
&LT;输入ID =Crop_YNAME =Crop.Y类型=隐藏值=&LT;%= Model.Y%GT; /&GT;
&LT;输入ID =Crop_WNAME =Crop.W类型=隐藏值=&LT;%= Model.W%GT; /&GT;
&LT;输入ID =Crop_HNAME =Crop.H类型=隐藏值=&LT;%= Model.H%GT; /&GT;
&LT;输入类型=提交值=剪裁/&GT;
&LT; /表及GT; &LT;形式的行动=/场/ UploadImageENCTYPE =的multipart / form-data的方法=后&GT;
&LT;输入ID =Upload_CourseIdNAME =Upload.CourseId类型=隐藏值=&LT;%= Model.CourseId%GT; /&GT;
&LT;标签=图片&GT;选择图片:&LT; /标签&gt;&LT;输入ID =Upload_Image类型=文件名称=Upload.Image/&GT;
&LT;输入类型=提交值=上传/&GT;
&LT; /表及GT;
和然后将其绑定与preFIX属性为您控制器这样的动作:
公众的ActionResult CropImage([装订(preFIX =剪裁)CropViewModel视图模型)
{
// 做一点事
}
公众的ActionResult UploadImage([装订(preFIX =上传)] UploadViewModel视图模型)
{
// 做一点事
}
I have multiple forms on a page which pass an id to the controller via hidden inputs. As I am using strongly typed views for these I think I need to keep the Id for each of these to be the same. It works currently though I think it's bad practice. How should I handle this? In Django there are form prefix values is there an equivalent?
http://stackoverflow.com/questions/1252826/avoid-duplication-of-form-input-element-id-in-django
Here are the two forms I am using:
<form action="/Course/CropImage" method="post">
<input id="CourseId" name="CourseId" type="hidden" value="<%= Model.CourseId %>" />
<input id="X" name="X" type="hidden" value="<%= Model.X %>" />
<input id="Y" name="Y" type="hidden" value="<%= Model.Y %>" />
<input id="W" name="W" type="hidden" value="<%= Model.W %>" />
<input id="H" name="H" type="hidden" value="<%= Model.H %>" />
<input type="submit" value="Crop" />
</form>
<form action="/Course/UploadImage" enctype="multipart/form-data" method="post">
<input id="CourseId" name="CourseId" type="hidden" value="<%= Model.CourseId %>" />
<label for="Image">Select Image:</label><input id="Image" type="file" name="Select Image"/>
<input type="submit" value="Upload" />
</form>
If you are having 2 view models (one for the crop, one for the upload) you can prefix them like this (you can use html helpers):
<form action="/Course/CropImage" method="post">
<input id="Crop_CourseId" name="Crop.CourseId" type="hidden" value="<%= Model.CourseId %>" />
<input id="Crop_X" name="Crop.X" type="hidden" value="<%= Model.X %>" />
<input id="Crop_Y" name="Crop.Y" type="hidden" value="<%= Model.Y %>" />
<input id="Crop_W" name="Crop.W" type="hidden" value="<%= Model.W %>" />
<input id="Crop_H" name="Crop.H" type="hidden" value="<%= Model.H %>" />
<input type="submit" value="Crop" />
</form>
<form action="/Course/UploadImage" enctype="multipart/form-data" method="post">
<input id="Upload_CourseId" name="Upload.CourseId" type="hidden" value="<%= Model.CourseId %>" />
<label for="Image">Select Image:</label><input id="Upload_Image" type="file" name="Upload.Image"/>
<input type="submit" value="Upload" />
</form>
and then bind attribute with the prefix to you controller actions like this:
public ActionResult CropImage([Bind(Prefix="Crop")]CropViewModel viewModel)
{
// do something
}
public ActionResult UploadImage([Bind(Prefix="Upload")]UploadViewModel viewModel)
{
// do something
}
这篇关于两种形式具有相同的输入ID在asp.net mvc的的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!